引言:
相关源码下载:javaresearch.org/dn/java1.4src/java/util/ArrayList.java target=_blank>java.util.ArrayListjavaresearch.org/dn/java1.4src/java/util/A...
摘要:
引子
-------------------------------------------------------------------------------------------------
平台中立性是java的本质特性, 它使得java无与伦比地适合于以网络为中心的计算。 如 果 你 正 在 开 发java应用程序,并且希望它能够运行于从网络计算机到unix工作站等......
摘要:
--------------------------------------------------------------------------------
作者:经乾、郭镇、赵伟 本文选自:中国计算机报 2002年03月11日
一、java中的远程方法调用
远程方法调用(remote method invocation, rmi)是java1.1引入的分布式......
Java 2源码解读1:java.util.ArrayList
相关源码下载:javaresearch.org/dn/java1.4src/java/util/abstractlist.java target=_blank>java.util.abstractlist 【程序编程相关:
第一讲 Java语言概况】javaresearch.org/dn/java1.4src/java/util/arraylist.java target=_blank>java.util.arraylist 【推荐阅读:
第二十二讲 网络功能(二)】arraylist是list接口的一个可变长数组实现.实现了所有list接口的操作,并允许存储null值.除了没有进行同步,arraylist基本等同于vector.在vector中几乎对所有的方法都进行了同步,但arraylist仅对writeobject与readobject进行了同步,其它比如add(object).remove(int)等都没有同步. 【扩展信息:
第十五讲 交互效果(一)】javaresearch.org/dn/java1.4src/java/util/list.java target=_blank>java.util.list
1.存储
arraylist使用一个object的数组存储元素.private transient object elementdata[];arraylist实现了java.io.serializable接口,这儿的transient标示这个属性不需要自动序列化.下面会在writeobject()方法中详细讲解为什么要这样作.
2.add与remove
public boolean add(object o) { ensurecapacity(size + 1); // increments modcount!! elementdata[size++] = o; return true; }注意这儿的ensurecapacity()方法,它的作用是保证elementdata数组的长度可以容纳一个新元素.在“自动变长机制”中将详细讲解. public object remove(int index) { rangecheck(index); modcount++; object oldvalue = elementdata[index]; int nummoved = size - index - 1; if (nummoved > 0) system.arraycopy(elementdata, index+1, elementdata, index, nummoved); elementdata[--size] = null; // let gc do its work return oldvalue; }rangecheck()的作用是进行边界检查.由于arraylist采用一个对象数组存储元素,所以在删除一个元素时需要把后面的元素前移.删除一个元素时只是把该元素在elementdata数组中的引用置为null,具体的对象的销毁由垃圾收集器负责....
下一页 摘要:
简化java应用程序的打包和发布
发布java应用程序时你会感到困难?好在java提供了一系列打包和发布工具,可以显著的简化发布过程
该文章提供了打包java code的几种方法,我们将会探讨java manifest 文件,给出用于管理jar文件所依赖文件、估计跨平台发布所需的classpath的合适方法.我也会解释如何使用manifest包版本特性来确认包的兼容性.........