l  垃圾收集器(GC)能释放由new分配的内存,但对于特殊的(不是new出来的,如IO状态、调用第三方C++库的时候,C++库的析构)内存,要编写自己的清除函数,在清除函数中作清除文件句柄、IO状态等。

l  GC的工作原理是首先调用finalize(),在下一次的垃圾回收过程才会释放内存。

l  程序退出后,占用的资源就会返回给系统。

l  Java不允许建立局部对象,无论如何都需要new。

l  数据的引用和使用通过标识符“[]”进行的,如“int []a1;”和“int a1[]”表达效果一致,后者是C/C++中通用的格式,前者Java中常用。

l  Java中的数组不允许实现定义长度,因为Java中的对象都是句柄。可以通过以下方式:“int [] a = new int[10]”,定义数据长度为10。

l  多维数组的定义,例子:int[][] a1 = new int[2][3],定义2*3的数组。

l  final关键字修饰的字段表示句柄被赋值后,就不能再改变句柄的值了。

l  final自变量表示在一个方法的内部,不能改变自变量句柄的内容。类似于C++中定义用const修饰的传入参数。

l  final修饰的类禁止被继承,数据成员可以是final,也不可以不是final,自由选择。

l  Java1.1提供了压缩类用于支持对压缩格式数据流的读写。

l  实现了Serializable接口的对象,可将他们转换成一系列的字节,并在以后完全恢复成原来的样子,即“对象序列号”特性。该特性可实现在Windows机器上创建一个对象,对其序列化,然后通过网络传给Unix机器,再准确无误地重新装配,不必关系数据在不同机器上如何显示,也不必关心字节的顺序或者其他细节。

l  RTTI(运行期类型鉴定),下塑造型。

l  Java中不存在本地变量的概念,如果需要改变一个对象,同时不改变调用者的对象,就要制作改对象的一个本地副本,使用clone()方法即可。

l  Java多线程编程时,为方法增加修饰synchronized关键字,可起到互锁的目的。调用任何synchronized方法时,对象就会被锁定,不可再调用那个对象的任何synchronized方法。除非第一个方法完成了工作并解除锁定。