静态方法和实例方法的区别
静态方法跟着类走,在类加载的时候初始化,生命周期和类相同。所有对象共用同一个静态成员(包括静态方法、静态属性)
实例方法跟着实例对象走,在new对象的时候初始化,生命周期和实例对象相同。每个对象拥有自己的实例成员副本。
静态方法会不会被回收
不会,静态方法本身属于类的一部分。但静态方法中创建的临时对象会被GC回收。类卸载时静态方法才会被清除。
类卸载
触发类卸载的条件
类的所有实例均被gc线程回收
加载该类的类加载器已被回收
该类对应的java.lang.Class对象没有被任何地方引用
类的加载过程
加载、验证、准备、解析、初始化
双亲委派机制
收到加载请求后,先不自己加载,而是委派给父加载器
父加载器无法完成时,子加载器才尝试加载