Java 语法

1. static 方法属性类拥有,如果子类中定义了相同签署的static 成员,该成员属于子类所有,而非重新定义,static 方法
也没有多态,因为对象不会个别拥有 static 成员。

2. final 在指定变量之后,就不再改变变量的值,可以在声明变量时加上final 限定,
如果后续撰写程序时,自己或别人不经意想修改final 变量,就会出现编译错误。
如果对象数据成员被声明为 final,但是没有明确使用  =指定值,那表示延迟
对象成员值的指定,在构造函数执行流程中,一定要有对该数据成员指定值的动
作。否则编译错误。

3. 在Java 中子类只能继承一个父类,如果定义时没有使用 extends关键字指定继承
任何类,那一定是继承 java.lang.Object。

4. Object 类的equals 方法
public boolean equals(Object obj) {
return (this == obj)
}
如果没有重新定义equals(),使用equals 方法时,作用等同于==。所以要比较实质
相等性,必须自行重新定义。

5. instanceof 用来判断对象是否由某个类创建,左操作数是对象,右操作数是类名。在
使用 instanceof时,编译程序会检查检查左操作数是否在右操作数类型的继承架构中。
执行时期,并非只有左操作数对象为右操作数类直接实例化才返回 true,只要左操作
数类型是右操作数类型的子类型,instanceof 也是返回true。

6. 关于垃圾收集(Garbage Collection, GC)
GC 在进行回收对象前,会调用对象的 finalize() 方法,这是Object 上就定义的
方法。如果对象在被回收前有些事情想做,可以重新定义 finalize()方法。

7. 多态,抽象的讲就是使用单一的接口操作多种类型的对象。被声明为protected 的成员,相
同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。

8. InputStream 和OutputStream 无论数据源或目的地为何,只要设法得到InputStream 或 OutputStream
的实例,接下来的操作输入/输出的方式都是一致的,无需理会来源或者目的地的真正形式。

System.in 而言,因为文本模式下通常是取得整行的用户输入,因此较少直接操作InputStream
相关方法,而是用前面章节使用 java.util.Scanner 打包。

9. 串流处理装饰器
常用的打包器有具备缓冲区作用的BufferedInputStream、BufferedOutputStream,具备数据转换
处理作用的DataInputStream、DataOutputStream,具备对象串行化能力的ObjectInputStream,
ObjectOutputStream等。这些类并没有改变InputStream、OutputStream因此被称为装饰器(Decorator)。

[img]http://dl2.iteye.com/upload/attachment/0091/3819/6951df45-7d3c-3a06-83f8-b8dec42a7f10.jpg" alt="[/img]

[img]http://dl2.iteye.com/upload/attachment/0091/3821/1f1e3835-5ba2-3a52-b235-573f7a9f2a14.jpg" alt="[/img]

[img]http://dl2.iteye.com/upload/attachment/0091/3823/99c1975b-8b93-3c14-b256-28ae4b77e1e4.jpg" alt="[/img]

你可能感兴趣的:(java)