volatile
final
final关键字的作用
● 被final修饰的类不可以被继承
● 被final修饰的方法不可以被重写
● 被final修饰的变量不可以被改变 不可变的是变量的引用而非引用指向对象的内容
● 被final修饰的方法(提升Java的效率是非常重要的 )
● 被final修饰的常量,在编译阶段会存入调用类的常量池中
static
静态变量和静态方法
静态资源的加载顺序是严格按照静态资源的定义顺序来加载的
静态代码块对于定义在它之后的静态变量,可以赋值,但是不能访问。
静态代码块是严格按照父类静态代码块->子类静态代码块的顺序加载的,且只加载一次。
public class A {
static {
System.out.println("A.static block");
}
public A() {
System.out.println("A.constructor()");
}
}
public class B extends A {
static {
System.out.println("B.static block");
}
public B() {
System.out.println("B.constructor()");
}
public static void main(String[] args) {
new B();
new B();
}
}