- 自然,我们都习惯了 IE,在 IE 中要在函数中获得各事件对象很容易,直接用 event、event.srcElemtn、event.fromElement、event.toElement 就行了。在 FireFox 中获得触发事件的元素可以用 event.target,但其他两个 fromElement 和 toElement 就要费些周折。
所以,为了保持一致的使用方式,也为了保持原有的使用习惯,我们加入以下 JS 代码(代码有些紧凑,未加注释,应该很好理解): Read More - 在 IE 中我们可以用 insertAdjacentHTML 往元素的 beforeBegin,beforeEnd,afterBegin,afterEnd 处理插入新元素。而在非 IE 中没有该方法,因而我们要创造一个兼容的 insertHtml 方法来。
本方法从 Ext 2 中剥离出来的,在 ext-all-debug.js 中有以下方法:
Ext.DomHelper.insertHtml( String where, HTMLElement el, String html ) : HTMLElement
参数介绍:
where:插入位置。包括beforeBegin,beforeEnd,afterBegin,afterEnd。
el:用于参照插入位置的html元素对象
html:要插入的html代码 Read More 1.目的
大型软件系统开发时,某些Java组件可能涉及到多种数据库或中间件系统的连接和应用,例如一个数据传递组件需要从DB2中读取数据, 并将数据通过中间件WebSphere MQ发送到其他系统,这类组件功能单一,但却需要连接多种第三方产品,使得程序员的单元测试变的非常不便, 程序员不得不注视或修改部分源代码,或者在本地安装所需第三方产品。无疑这两种选择都是痛苦的。
基于以上的不便,本文开发了解析Java Class文件程序,目的是将第三方产品API的Class文件转换为Java源文件(不包括Java类的方法实现), 在源文件的各种程序所需的方法里实现一些简单的语句,例如数据库连接方法永远返回true,获得数据方法永远返回 ”Hello world” 等, 用JDK重新编译转换后的Java源文件,来替换真正的API 文件,这样程序员在UT测试时,无需修改源代码,也无需安装任何产品, 并且能通过修改替换的API Java源文件实施各种UT测试。 Read More
- 注:因package,import涉及较多内容,另开一个帖子了,但为了保证此贴内容与标题相符,在此也把写上了该部分内容(措辞有整理)
深入下package,import:
凡是和java设计相关的工具,都会用到package与import,到底这两个东东是做什么的,如何用,它们的内部机理又是如何呢,今仅就个人的理解谈谈看法,里面一些错漏,疑点也请朋友们指出:
一, package,import引入原因:
package:
我们都熟悉超市,超市虽然庞大,东西繁多,但管理的井井有条,很容易找到某样东东,;之所以能如此,一个很重要的原因就是采用了分类放置,这样既方便了管理,又方便了寻找
Package也是一个分类放置东东的区域,不过它放的不是商品而是java中的类。Java中有各种各样的类,
内容丰富,繁多,为了更好的管理,识别,就为每一类型的类建立一个区域,这个区域就是包 Read More - 对象可触及时的生命周期
在 JVM 1.2 之前,堆中的对象分为三种状态,分别是:
1. 可触及的 -- 从根节点开始可追踪到
2. 可复活的 -- 从根节点开始追踪不到,但有可能被终结方法触及并复活。不仅仅是那些声明了 finalize() 方法的对象,而是所有的对象都要经过可复活状态
3. 不可触及的 -- 以上两种可能性都不存在,可以真正回收它们所占据的内存了
版本 1.2 中,可触及按强弱进一步细分为:
1. 强可触及 -- 即原来的可触及,从根节点开始的任何直接引用,如一个局部变量或任何从强可触及对象的实例引用的对象
2. 软可触及 -- 表现为 SoftReference 所引用的对象
3. 弱可触及 -- 表现为 WeakReference 所引用的对象
4. 影子可触及 -- 表现为 PhantomReference 所引用的对象 Read More 自适应收集器
在第一篇:有关于 JVM 的垃圾收集(一) 中谈到过几种垃圾收集的算法,然而我们的 JVM 启动之后并不要求彻头彻尾的死板的使用一种垃圾收集算法,固定的算法参数。因为某种情况下某些垃圾收集算法工作得更好,而别外一些收集算法在另外的情况下工作得更好,所以自适应的垃圾收集技术应运而生。自适应算法监视堆中的情形,并且对应的调整为合适的垃圾收集技术。或能是换一种垃圾收集算法,或者是调整当前算法参数,或者把堆划分为子堆,同时在不同的子堆中使用不同的算法。
简述火车算法
垃圾收集一般都会停止整个程序的运行来查找和收集垃圾对象,它们可能在程序执行的任意时刻暂停,并且暂停的时间也无法确定。垃圾收集也可能使得程序对事件响应迟钝,无法满足实时系统的要求。如果一种垃圾收集算法可能导致用户可察觉的到的停顿或者使得程序无法适合实时系统的要求,这种算法被称作破坏性。垃圾收集算法的还有一个基本目标是使本质上的破坏性尽可能少,如果可能的话,尽可能消除这种破坏性。 Read More
Java 中使用 new、newarray、anewarray 和 multianewarray 指令来创建的对象,当这些对象不再使用时由垃圾收集来释放。 那么 反序列化等都是间接使用了前面的某个指令, clone() 是个本地方法?
JVM 规范不需要任何特定的垃圾收集技术,甚至也没要求有垃圾收集机制。 大概只是说不需要手工释放内存,具体怎么实现各 JVM 自行决定。
GC 除了释放不再被引用的对象,还要处理堆碎片, 整理出连续的空闲空间才能放得下新的对象。不至于出现总的空闲空间足够,但碎片太多而报出 "Out of Memory" 的异常。
GC 有两个好处: 一个是提高了生产率,不用埋头于 Memory Link 的有时甚至是逐行的检查;二,GC 也是 Java 安全策略的一部分,有了它不至于因错误的释放内存而导至 JVM 崩溃。 但是 GC 的一个潜在缺陷影响了程序的性能,它需要一直在后台不时的做些事情,而且实时性也有所欠缺。 Read More
有一 Java 控制台程序,启动经过一段时间之后从 Windows 任务管理器里看它所占用的内存稳定在 540M 左右。
启动参数是:-Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128
但只要你把那个控制台窗口最小化后,观察到的内存用瞬间下降到 100 多M,有时候甚至是几十M。然后不管是窗口保持最小化还是恢复了,它所占用的内存又以几十M几十M的上扬,直至先前的 540 M 左右。每次最小化窗口都可以观察到这种现象。
控制台窗口的参数:屏幕缓冲区大小:宽 120;高 300。窗口大小:宽 120;高 40。
不知道在控制台窗口最小化那时,JVM 做了些什么事情能让内存骤降下来,而复又升回去。
直接以一个例子在说明,如DB2中有一个简单存储过程 selectAllUsers1CREATE procedure selectAllUsers 2DYNAMIC RESULT SETS 1 3BEGIN 4 DECLARE temp_cursor1 CURSOR WITH RETURN TO CLIENT FOR 5 SELECT * FROM test; 6 OPEN temp_cursor1; 7END;
映射文件中关于存储过程内容如下 Read More- FireFox 有 FireBug
而IE下有
1. MS 的Developer Toobar,
2. Instance Source
3. HttpWatch
http://www.ieinspector.com/dominspector/download.html
4. IE Dom Inspector
5. IE Http Analyzer
6. AxScripter
7. IE WebDeveloper
试一试它们的好处