类:public、abstract、final
构造函数:public、protected、private
成员变量:public、protected、private、static、final、transient(不被序列化)、volatile(可被异步的线程所修改,禁用cpu缓存,禁止指令重排)
局部变量:final
方法:public、protected、private、abstract、final、static、native(由其他编程语言实现)、synchronized
final:可以修饰类、方法、变量、参数。被修饰的类不能被继承、方法不能被重写、变量为常量、参数不可被修改
被final修饰的局部变量不被称为常量,因为无法存在于常量池中
static:可以修饰变量、方法、代码块、内部类
随着类的加载而加载,优先于对象加载
只加载一次就一直存在,不在开辟新空间
全局唯一,全局共享
可以直接被类名调用
静态的只能调用静态的,非静态的可以随意调用
static不能与this、super共用,因为static时可能还没有对象
静态代码块在类加载后,初始化阶段执行,用于初始化静态变量,做一些复杂的逻辑运算,main是第一个加载到栈中的方法但并不是第一个在栈中运行的代码,第一个运行的是main方法所在类的静态代码块