河北网站seo策划,学生做的动漫网站,美发企业网站模板,网站流量如何赚钱类的生命周期
类的生命周期指的是在Java程序中#xff0c;一个类从编写到被加载、连接、初始化、使用、卸载的整个过程。类的生命周期可以分为以下几个阶段#xff1a;
加载#xff0c;验证#xff0c;准备#xff0c;解析#xff0c;初始化#xff0c;使用#xff0…类的生命周期
类的生命周期指的是在Java程序中一个类从编写到被加载、连接、初始化、使用、卸载的整个过程。类的生命周期可以分为以下几个阶段
加载验证准备解析初始化使用卸载。
类的加载过程
加载验证准备解析初始化
加载阶段加载阶段是指将类的字节码文件加载到内存中并生成一个代表该类的Class对象 加载阶段的工作由类加载器ClassLoader来完成包括通过类的全限定名查找字节码文件并将字节码文件加载到内存中。
连接阶段连接阶段包括验证、准备和解析三个步骤
验证确保被加载的类符合Java虚拟机规范不会造成安全问题。
准备为类变量(静态变量)分配内存并设置默认初始值。(不包括实例对象)
解析将类、接口、字段和方法的符号引用解析为直接引用。
初始化阶段初始化阶段是类加载过程中的最后一个阶段执行clinit方法Java虚拟机会按照程序员的要求执行类的初始化操作例如执行静态变量的赋值操作、执行静态代码块等。
使用阶段当类成功加载并初始化后就可以在程序中使用该类创建对象实例、调用方法等。
卸载阶段如果一个类不再被引用该类的对象和类加载器实例被垃圾回收那么这个类可能会被卸载释放内存空间。
类的生命周期包括了加载、连接、初始化、使用和卸载等阶段这些阶段都是类在程序运行过程中所经历的重要阶段。
类加载器
将类的字节码文件加载到内存中并生成对应的Class对象。类加载器通常负责从文件系统、网络或其他来源加载类的字节码并将其转换为可执行的Java类。
类加载器分为哪些呢?
启动类加载器(Bootstrap Class Loader)加载核心类库java_home/lib或-Xbootclasspath指定路径存放的类库比如java.iojava.util等扩展类加载器(Extension Class Loader)加载java_home/lib/ext目录下或java.ext.dirs指定路径的类库比如JDBCJava Image I/O API应用程序类加载器(Application Class Loader)加载用户类路径的类库
什么是双亲委派机制
类加载器收到类加载请求后不会自己去尝试加载而是交给父类加载器进行加载因此最后类加载的请求会转送至启动类加载器。当父类加载器加载不了的时候才会交给子类加载器进行加载。其优点在于避免类的重复加载避免Java核心类被破坏
如何破坏双亲委派机制
重写loadclass()方法
摘自《深入理解Java虚拟机》第三版 周志明著