双创网站建设百度做的网站字体侵权吗
news/
2025/9/29 15:09:01/
文章来源:
双创网站建设,百度做的网站字体侵权吗,软装设计师,游戏私人服务器搭建什么是类加载器#xff1f;
类加载器#xff1a;JVM只会运行二进制文件#xff0c;类加载器的作用就是将字节码文件加载到JVM中#xff0c;从而Java
程序能够启动起来。 类加载器有哪些#xff1f; 启动类加载器(BootStrap ClassLoader):加载JAVA HOME/jre/lib目录下的库…什么是类加载器
类加载器JVM只会运行二进制文件类加载器的作用就是将字节码文件加载到JVM中从而Java
程序能够启动起来。 类加载器有哪些 启动类加载器(BootStrap ClassLoader):加载JAVA HOME/jre/lib目录下的库
扩展类加载器(ExtClassLoader):主要加载JAVA HOME/jre/lib/ext目录中的类
应用类加载器(AppClassLoader):用于加载classPath下的类。是默认的类加载器一般来说java
应用的类都是由该加载器加载的。
在java的日常应用开发中类的加载基本上都是由这三种加载器互相配合完成加载的。
自定义类加载器(CustomizeClassLoader):自定义类继承ClassLoader实现自定义类加载规则。 什么是双亲委派模型
加载某一个类先委托上一级的加载器进行加载如果上级加载器也有上级则会继续向上委托
如果该类委托上级没有被加载子加载器尝试加载该类 举例 在加载Student类时应用类加载器会委派扩展类加载器扩展类加载器会委派启动类加载器启动类加载器不会加载扩展类不会加载然后应用类加载器加载Student类 JVM为什么会采用双亲委派机制?
(1)通过双亲委派机制可以避免某一个类被重复加载当父类已经加载后则无需重复加载保证唯
一性。
(2)为了安全保证类库API不会被修改
例子 类装载的执行过程 类从加载到虚拟机中开始直到卸载为止它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中验证、准备和解析这三个部分统称为连接(linking) 加载阶段
通过类的全名获取类的二进制数据流。解析类的二进制数据流为方法区内的数据结构(Java类模型)创建java.lang.Class类的实例表示该类型。作为方法区这个类的各种数据的访问入口 验证阶段验证类是否符合JVM的规范安全性检查 准备阶段为类变量分配内存并设置类变量的初始值
static变量分配空间在准备阶段完成(设置默认值)赋值在初始化阶段完成static变量是final的基本类型以及字符串常量值已确定赋值在准备阶段完成static变量是final的引用类型那么赋值也会在初始化阶段完成
例子 变量b分配空间在准备阶段完成(设置默认值0)赋值在初始化阶段完成 b10
变量c 和 变量d 值已确定赋值在准备阶段完成
变量obj 赋值也会在初始化阶段完成 解析阶段把类中的符号引用转换为直接引用
符号引用和直接引用的例子
比如:方法中调用了其他方法方法名可以理解为符号引用而直接引用就是使用指针直接指向方法 初始化阶段对类的静态变量静态代码块执行初始化操作
如果初始化一个类的时候其父类尚未初始化则优先初始化其父类如果同时包含多个静态变量和静态代码块则按照自上而下的顺序依次执行。
案例
public class Application {public static void main(String[] args) {// 1. 首次访问这个类的静态变量或静态方法时System.out.println(Animal.num);// 2. 子类初始化如果父类还没初始化会引发父类先初始化System.out.println(Cat.sex);// 3. 子类访问父类静态变量只触发父类初始化System.out.println(Cat.num);}
}class Animal {static int num 55;static {System.out.println(Animal 静态代码块...);}
}class Cat extends Animal {static boolean sex false;static {System.out.println(Cat 静态代码块...1);}static {System.out.println(Cat 静态代码块...2);}
}
1.访问父类的变量
执行结果 2.访问子类的变量 3.子类访问父类的静态变量 使用阶段
JVM 开始从入口方法开始执行用户的程序代码调用静态类成员信息(比如:静态字段、静态方法)使用new关键字为其创建对象实例
卸载阶段当用户程序执行完毕之后JVM便开始销毁创建的Class对象 总结 加载:查找和导入class文件 验证:保证加载类的准确性 准备:为类变量分配内存并设置类变量初始值 解析:把类中的符号引用转换为直接引用 初始化:对类的静态变量静态代码块执行初始化操作 使用:JVM 开始从入口方法开始执行用户的程序代码 卸载:当用户程序代码执行完毕后JM便开始销毁创建的Class对象。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921923.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!