加载:查找并加载类的二进制数据
连接:验证:确保被加载的类的正确性准备:为类的静态变量分配内存,并将其初始化为默认值解析:把类中的符号引用转换为直接引用
初始化:为类的静态变量赋予正确的初始值类的加载指的是将类的.class文件中的二进制数据放在数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构
类的验证的内容:类文件的结构检查语义检查字节码验证二进制兼容性的验证类的初始化创建类的实例访问某个类或接口的静态变量,或者对该静态 变量赋值调用类的静态方法反射(如 Class.forName(“cn.furongfeng.Test”) )初始化一个类的子类Java虚拟机启动时被标明为启动类的类(Java Test)
类加载器根类加载器扩展类加载器系统类加载器用户自定义加载器
类加载的父委托机制加载器先在自己的命名空间检查查找目标类是否加载,如果已经加载直接返回代表目标类的Class对象的引用。如果没被加载就向自己的父加载器,直至根类加载器都没有,在自己尝试加载。能成功加载目标类的加载器称为定义类加载器,而所有能返回目标类的Class对象引用的加载器都称为初始类加载器命名空间每个类加载器都有自己的命名空间。命名空间由该类加载器和其所有父类加载器所加载的类组成。在同一个命名空间不会出现类的完整名字(包括类的包名)相同的两个类运行时包由同一的定义类加载器加载的属于相同包的类组成。只有属于相同运行时包的类才能互相访问包可见的类和类成员类的卸载当一个类不可触及时,类将会被从方法区卸载由java自带的类加载器加载的类始终不会被卸载。因为java虚拟机始终会引用这些加载器,这些加载器始终会引用这些类类加载器内部实现了一个集合存放所有加载类的引用。一个Class对象总是会引用他的类加载器调用Class对象的getClassLoader()方法能获得他的类加载器。一个类实例总会引用的代表这个类的Class对象所有的java对象都有一个静态属性class引用这代表这个类的Class对象Object类又定义了getClass()方法能返回代表代表这个类的Class对象
详细解决方案
Java虚拟机类加载
热度:7 发布时间:2024-01-27 03:10:03.0
相关解决方案
- java 乱码 汉字是 ? 如何转换成汉字
- java web 登录次数限制,该如何解决
- java 工商银行网银支付 B2B的 都亟需什么,需要注意什么
- Java Applet程序从JDK6升级到7时遇到的有关问题
- java web 视频相干
- java 系统单点登录解决方案
- java 获取客户端IP解决办法
- JAVA 后台怎么获得前台页面FCKedit编辑器中的内容以及内容的样式
- java 正则化匹配有关问题
- JAVA WEB导航条,该怎么处理
- java 中Node 有关问题
- 吐了,java Timer 终止不了。
- java web开发解决办法
- 关于 java cast 有关问题,你明白不
- java web项目上的一些文件
- java struts 文件上载
- java web baidu map开发
- JAVA WEB导航条解决办法
- java 编写ftp上载
- java web中的一个有关问题,困扰小弟我很久了
- java web 与tomcat解决办法
- java web基于j2ee的一些有关问题
- java 内网外网的一个需求,该怎么处理
- jsp 页面 安插ArrayList 报错。为什么,已经加了import="java.util."了呀!
- java dwg 怎样用java把dwg便是aoutcad的格式文件转换成gif,jpg等格式
- java webservice解决方法
- java 与jsp,该怎么解决
- mysql 转 orocle java ssh项目一条 sql 句不通!
- java spring mvc,该怎么解决
- java Web 网站全部页面均白屏