@goofect
你想多了:),变量是什么?
你所说“myGlobalObject只是一个变量,指向domobj,而自身并不是一个jsobject.” 没有错,但是不是“jsobject”不是重点。
重点在于“IE 6处理不了的是JScript与Native Object(例如Dom、ActiveX Object)之间的Circular References”。
关键字是“References引用”:)
你只要考虑一下GC是凭什么来决定是否回收的就可以明白。
最新的2.3版本,不再只使用doc个数作为合并segments与否的唯一参数,
而是允许设置不同的策略,默认的策略也改为了索引信息的数据量阙值(bytes)
re: 复杂度为log(n)的排序堆栈算法 鹏飞万里 2008-02-04 15:19
备忘:这个类中:
top()返回的是heap[1]的数值,但不移除,heap[1]永远要求是最小的值
pop()会移出heap[1]的数值,而后把heap[size]的值移到heap[1],而后使用downHeap() 把heap[1]下移到适合位置
put(element)是往队列尾部heap[size],也就是buttom追加
insert(element)类似put,区别在于如果数组已经填满时,如果element比top大时,就把heap[1]的数值缓存element,再重新排序
upHeap() 表示尾部(buttom)heap[size]追加了一个数值,因此,需要把这个数up到对应的位置。
downHeap() 表示top,即heap[1]的数值变化了,把它下移到适合的位置。
adjustTop() 同downHeap()
re: 备忘: UTF-8的格式 鹏飞万里 2008-01-26 01:34
re: 备忘: UTF-8的格式 鹏飞万里 2008-01-25 22:29
从这看出Lucene只支持到了BMP(3 bytes utf-8),估计是因为J2SE 1.4中的字符处理是基于Unicode 3.0标准的。
目前完整的unicode需要4 bytes utf-8才能实现。
参考
http://zh.wikipedia.org/wiki/UTF-8
http://www.blogjava.net/tim-wu/archive/2008/01/25/177788.html
另:
Java 1.0 supports Unicode version 1.1.
Java 1.1 onwards supports Unicode version 2.0.
J2SE 1.4中的字符处理是基于Unicode 3.0标准的。
J2SE v 1.5 supports Unicode 4.0 character set.
而:
Unicode 3.0:1999年九月;涵蓋了來自ISO 10646-1的十六位元通用字元集(UCS)基本多文種平面(Basic Multilingual Plane)
Unicode 3.1:2001年三月;新增從ISO 10646-2定義的輔助平面(Supplementary Planes)
re: 备忘: UTF-8的格式 鹏飞万里 2008-01-09 17:37
修正一下,还有4 bytes的utf-8字符集
http://www.blogjava.net/tim-wu/archive/2007/12/07/165989.html
发现更好玩的,
SmallFloat.byte52ToFloat()和SmallFloat.byte315ToFloat()
的计算结果千差万别,
汗,难道lucene是只是把它作为一个可逆的码表来用?
好在通过这个熟悉了IEEE 754规范,不算没所得:) 呵呵
re: swt中非用户线程访问图形控件的方法 鹏飞万里 2007-08-02 17:36
Display display = textViewer.getTextWidget().getDisplay();
display.asyncExec(new Runnable() {
public void run() {
textViewer.setDocument(new Document(textString));
}
@emu
多谢:) 已修正。
不过向毛主席保证,“溢出”一定不是偶翻译的,哈哈~~
@THEMAX
SetupLeak() 函数中
myGlobalObject = document.getElementById( " LeakedDiv " );
则 myGlobalObject有了一个指向DOM对象 " LeakedDiv " 的引用,
而后
document.getElementById( " LeakedDiv " ).expandoProperty = myGlobalObject;
使得DOM对象 " LeakedDiv " 有一个属性expandoProperty引用指向myGlobalObject;
这样myGlobalObject和DOM对象 " LeakedDiv "分别有引用指向对方,所以就循环引用了。
函数BreakLeak() 则清除了DOM对象" LeakedDiv " 向myGlobalObject的引用,
解决循环引用问题。
============================
如果你问的是第二段代码,那么就比较复杂了。
这涉及到Closure的问题,你可以看看文章中给出的其他链接文章,例如zkjbeyond对Closure一文的翻译。
大致的原因是因为ClickEventHandler()是AttachEvents()的一个内嵌函数,
AttachEvents()函数执行后,把ClickEventHandler()函数绑定在element对象的"onclick"事件上。这样,element对象就有个间接引用指向ClickEventHandler()函数的一个实例。
又正是因为ClickEventHandler()是一个内嵌函数,因此会为这个实例构造一个scope,这个scope中包括了父函数,也就是AttachEvents()函数中的局部变量和参数,而这儿的参数刚好就是element,所以ClickEventHandler()函数的实例同时又间接引用了element。
说得有些绕.......呵呵
I agree. :) Gis确实很广泛,偶没有做过Gis,只是被一个项目逼了一下才玩次擦边球。
zkjbeyond好像是做Gis的吧?有机会多交流。