Java复习笔记(二)

1、初始化块机制
首先运行初始化快,然后才运行构造器的主体部分
静态域初始化块:

static{
}

 

2、只能使用*导入一个包:如:import java.util.*;
3、静态导入:静态方法、静态域
import static java.lang.System.*;
4、如果没有指定public或private,那么这个部分(类、方法或者变量)可被同一个包中的所有方法访问
5、包作用域:默认情况下是包可见的
6、包密封:(package sealing) jar文件密封包
7、/**…*/->文档注释 javadoc
标记+自由格式,其中标记由”@”开始
8、类设计技巧:
一定要将数据设为私有;
一定要对数据初始化;
不要在类中使用过多的基本数据类型;
不是所有的域都需要独立的域访问器和域更改器;
使用标准格式进行类的定义;
将职责过多的类进行分解;
类名和方法名要能够体现它们的职责。
9、Java中的所有继承都是公有继承:超类和子类
10、覆盖(Override)子类使用super调用超类的方法以及构造器
11、一个对象变量可以引用多种实际类型的现象叫做多态(Polymorphism)
运行能够自动地选择调用的适当方法的现象称为动态绑定
12、虚拟机预先为各个类创建了一个方法表
13、在覆盖一个方法时,子类方法不能低于超类方法的可见性
14、阻止继承的两种方法:final类的方法自动成为final方法(不包括域),final方法
15、内联的概念:如果一个方法没有被覆盖并且很短,编译器就能够对它进行优化处理。
16、强制类型转换:
只能在继承层次内进行类型转换;
在将超类转换成子类的前应使用instanceof进行检查
17、抽象类可以包含非抽象方法,也可以不包含抽象方法。抽象方法充当着占位的角色,具体实现在子类中。
抽象类不能被实例化
只有子类实现了所有抽象方法,子类才不是抽象的了
18、子类不能访问超类的私有域
19、hashcode: 由对象导出的一个整型值
每个对象都有一个默认的散列码,其值为对象的存储地址
20、两个相等的对象要求必须返回一个相等的散列码
21、自动打包规范要求boolean byte char=0:x;
38、四个基本的抽象流类:InputStream OutputStream Reader Writer(这些对象由其他方法返回)
39、注意流过滤器的运用
40、对象序列化:ObjectOutputstream ObjectInputStream writeObject() readObject()
类必须实现Serializable 接口
41、Java使用SHA编码的前8字节作为类的指纹
在序列化的过程中内存地址会被替换为序列号(唯一)
42、流类关注的是文件内容,而File类关注的是文件在磁盘上的存储

你可能感兴趣的:(java,虚拟机)