1.父类的静态方法和最终方法不能被覆盖。
2.用静态方法覆盖实例方法是通不过编译的
3.String 的intern函数是将该String放入JVM的常量池中,避免出现String类型的多处应用。
例如 b=a.intern();
a==b 等于TRUE
4.访问被覆盖的方法,只能用super
5.只能通过传递数组来达到,基本数据类型数据引用的效果。
6.注意clone的深度,当要克隆一个对象时,若该对象的内部有对象,则需要将内部对象也clone,也就是主要写clone对象。
7.若以对象作为hashmap的索引值,需要重写该对象的equal,和hashcode函数。
8.异常,如果对try{}catch(exception o){}的所有catch情况都考虑到了的话,调用者就不需要添加catch或throw exception啦
9.文件流: 分为字节流( 带Input)和字符流(带reader)
例如FileInputStream 例如FileReader
字符流不依赖於编码,全部采用unicode编码
如果需要支持国际化的话就需要采用直接流啦 。
示例: FileInputStream is=new FileInputStream(f);
InputStreamReader r=new InputSteamReader(is,"utf-8");
另外可以使用System.getProperty("file.endcoding")来获得系统的默认编码
10,数组和矢量Vector比较 遍历Vector比较慢,因为Vector是线程安全的,获取值时采用了同步化,解决方法在遍历是toArray()
例外ArrayList具有vector的动态增加长度的特点,但ArrayList是非同步的矢量。
11.在循环体内链接字符串,使用StringBuffer效率更高;其他情况下使用+。