java类加载机制
来源:互联网 发布:乔约翰逊生涯数据 编辑:程序博客网 时间:2024/06/07 23:54
java是面向对象语言,所有的事物在java语言中都可以抽象成为对象,对象在java中以类的形式存在,那么类是如何加载的呢?
.class文件通过类加载器加载,将类中的二进制数据读入到jvm虚拟机运行时数据区的方法区内,并且对数据进行校验、解析、初始化。最终形成可以被虚拟机直接使用的java类型。
类加载器加载类文件:
1.通过类的全限定名来获取类的二进制流。
2.将获取的二进制流转化成方法区的运行时数据结构
3.在堆内存中创建一个这个类的class对象,最为对方法区中这个数据的访问入口
校验:确保加载类的正确性
1.校验文件格式是否符合规范
2.校验语义、语法是否正确
3.校验符号引用是否正确
准备:为静态变量分配内存、并为其初始默认值
1.静态变量内存分配在方法区内,实例变量会跟随对象一起在堆中分配内存空间。
2.为静态变量赋默认零值,例如public static int a = 10; 在准备阶段,a的值是0,在初始化阶段,a才被赋予10.
解析:把类中的符号引用转换为直接引用
初始化:为静态变量赋指定的值
类初始化时机:只有当对类的主动使用的时候才会导致类的初始化,类的主动使用包括以下六种:
1.new创建类的实例
2.调用某个类的静态变量
3.调用某个类的静态方法
4.发射(calss.forName())
5.初始化某个类的子类
6.虚拟机启动的时候被标明要初始化的类
0 0
- Java类加载机制
- java 类加载机制
- Java类加载机制
- Java 类加载机制
- [Java] 类加载机制
- Java类加载机制
- java类加载机制
- Java加载类机制
- Java类加载机制
- Java类加载机制
- Java类加载机制
- Java类加载机制
- Java 类加载机制
- java 类加载机制
- Java类加载机制
- Java类加载机制
- Java类加载机制
- java类加载机制
- UGUI新手引导开发
- 同余定理
- I am new to Maven so please excuse any of my ignorance
- 三角形数字路径最大值问题
- 静态链表的实现
- java类加载机制
- 绝对路径与相对路径
- bzoj1444: [Jsoi2009]有趣的游戏
- DFS 做背包问题
- 【23种设计模式】之 代理模式(Representative Pattern)
- java 基础知识
- Failed to load the JNI shared library
- 全球最大市值20家公司更替,下一轮市场机遇在哪?
- 【数据结构】哈夫曼树及哈夫曼编码