final
- final关键字可以修饰 类,方法,变量
- final 修饰 的类不能被集成,也就没有子类
- final可以修饰方法(除了构造方法)可以被集成,但是不能被重写
- final 修饰变量一旦复制不能修改
static
-
static 可以修饰内部类,成为静态内部类
-
static 可以修饰变量成为静态变量,又叫全局变量,不依赖类的对象就可通过类名直接调用,存在方法区,仅仅是对象的引用存在方法区,实际new出的对象还是存在堆内存。jvm加载方法区在加载类之前,所以静态变量能够快速初始化。
-
static 可以修饰方法成为静态方法,不需要类创建实例可以直接通过类名使用
例如:
calss A {
public static void test(){
}
}
A.test();
- static 修饰代码块,在加载类时候执行一次
加载时机:静态代码块(仅仅一次)》构造代码(类创造一次执行一次)》构造方法(类创造一次执行一次)
方法区
- 方法区与Java堆一样,是各个线程共享的内存区域。它存储已被Java虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等 --------《深入理解JVM》