1、transient变量,指示变量不是对象的永久状态,这样对象在序列化的时候该变量不会被序列化。
2、volatile变量,线程在访问这类变量时,都必须使它对该变量的工作拷贝与主拷贝一致。
3、final方法,用方法的主体代码代替对方法的调用,类似c++中的内联方法。
4、synchronized方法在执行前,会得到一个锁,对于类方法(静态方法)得到的是该类的类对象的锁,对于实例方法得到是与this相关的锁。
5、native方法,指示该方法是用依赖于平台的代码实现的,通常过用另一种语言如c,c++或者汇编语言编写的。
6、接口是一个其成员为常量和abstract方法的引用类型,这种类型没有实现,但是其他的类可以提供对它的abstract方法的实现来实现它。
7、类的装载:寻找一个具有特定名称的类或者接口的二进制形式,并且用这个二进制形式构造一个代表该类或者接口的class对象的过程。
8、类的链接:取得类或者接口的二进制形式并把它链接成JVM的运行期状态使它可以被执行的过程。链接包括:检验,准备和对符号引用的解析。
检验:保证类或者接口的二进制表示的结构是正确的。
准备:创建类或者接口的静态域并把这些域初始化标准的缺省值,该过程不执行任何代码。
解析:对类中引用的别的类或者接口的正确性进行解析。
9、类的初始化,在类被首次使用时进行初始化,初始化包括:静态初始化函数和静态域的初始化器的执行。类在初始化前必须先初始化超类。类初始化时类实现的接口不需要初始化。
接口的初始化,在接口首次使用的时候初始化,初始化包括:在接口中声明的域的初始化器的执行。接口初始化不必要初始化超接口。