标签:定义 结构 接口 代码 str 对象 sys 2.3 扩展
JVM启动过程包括:加载、连接、初始化
1.加载:就是将class文件加载到内存。详细的说是,将class文件加载到运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区类的数据结构
有两种类型的类加载器:
1.1JVM自带提供的三类加载器:根类加载器Bootstrap Classloader(C++写的, 程序员无法在JAVA代码中获得该类)
扩展加载器Extension Classloader,使用Java代码实现
系统加载器System ClassLoader,也叫应用加载器 Application Classloader,使用Java代码实现
1.2用户自定义的类加载器,都是java.lang.ClassLoader的子类
2.连接分为三步 2.1.验证:检查被加载的类的正确性;
2.2.初始化:接着将静态变量初始化为默认值,比如一个类中有一句private static int num=1; 实际上在这一步的时候,只是将num初始化为默认值0
2.3.解析:把类中的符号引用转换为直接引用
3. 初始化。"任何JVM实现,必须在每个类或接口被JAVA程序"首次主动使用时"才初始化它们"
标签:定义 结构 接口 代码 str 对象 sys 2.3 扩展
原文地址:http://www.cnblogs.com/heben/p/7072204.html