java核心机制——jvm运行以及类加载全过程
2017-02-20 10:46
711 查看
jvm运行和类加载
为啥要研究类加载全过程?
~~有助于了解JVM运行过程
~~更深入了解java动态性,(解热部署,动态加载)提高程序来的灵活性。
类加载机制
~JVM把class文件加载到内存,并对数据进行校验,解析和初始化,最终形成JVM可以直接使用的java类型的过程。
加载
~将class文件字节码内容加载到内存中,并将这些静态数据转换成方法去中运行是数据结构,早堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。
链接
将java类的二进制代码合并到jvm的运行状态之中的过程
~验证:确保加载的类信息符合jvm规范,没有安全方面的问题。
~准备:正式类变量(static变量)分配内存并设置变量初始值的阶段,这些内存都将在方法去中进行分配
~解析:虚拟机常量吃内的符号引用替换为直接引用的过程。
初始化
~初始化阶段执行类构造器<clinnt>()方法的过程。构造器<clinit>()方法是由编译器自动收集类中的所有类变量的赋值动作和静态语句(static块)中的语句合并产生的。
~当初初始化一个类的时候,如果发现父类还没有进行初始化,则需要先发出父类的初始化
~虚拟机会保证一个类的<clinit>()方法在多线程环境中被正确加锁和同步。
~当访问一个java类的静态域时,只要真正声明这个域的类才会被初始化。
为啥要研究类加载全过程?
~~有助于了解JVM运行过程
~~更深入了解java动态性,(解热部署,动态加载)提高程序来的灵活性。
类加载机制
~JVM把class文件加载到内存,并对数据进行校验,解析和初始化,最终形成JVM可以直接使用的java类型的过程。
加载
~将class文件字节码内容加载到内存中,并将这些静态数据转换成方法去中运行是数据结构,早堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。
链接
将java类的二进制代码合并到jvm的运行状态之中的过程
~验证:确保加载的类信息符合jvm规范,没有安全方面的问题。
~准备:正式类变量(static变量)分配内存并设置变量初始值的阶段,这些内存都将在方法去中进行分配
~解析:虚拟机常量吃内的符号引用替换为直接引用的过程。
初始化
~初始化阶段执行类构造器<clinnt>()方法的过程。构造器<clinit>()方法是由编译器自动收集类中的所有类变量的赋值动作和静态语句(static块)中的语句合并产生的。
~当初初始化一个类的时候,如果发现父类还没有进行初始化,则需要先发出父类的初始化
~虚拟机会保证一个类的<clinit>()方法在多线程环境中被正确加锁和同步。
~当访问一个java类的静态域时,只要真正声明这个域的类才会被初始化。
package com.cn.love.ui; public class test { public static void main(String[] args) { A a = new A(); System.out.println(A.width); } } class A{ public static int width=100; static { System.out.println("静态初始类A"); width=300; } public A(){ System.out.println("创建A类的对象"); } }
相关文章推荐
- Java的运行平台以及核心机制 JRE JVM JDK之间的联系
- Java学习之类加载全过程_JVM内存分析_反射机制核心原理_常量池理解
- JVM核心机制_类加载全过程JAVA218-219
- Java的运行平台以及核心机制 JRE JVM JDK之间的联系
- java web的初始化加载顺序,以及servlet的运行过程
- Windows系统环境变量、JAVA环境变量配置以及JVM加载过程
- java的JVM以及java中代码的运行过程
- JVM核心之 JVM运行和类加载全过程
- 223_尚学堂_高淇_java300集最全视频教程_JVM核心机制_线程上下文类加载器_web服务器类加载机制_OSGI技术模块开发原理介绍
- JVM的方法区以及JVM运行java文件的过程
- Java300StudyNote(6)-JVM核心之JVM运行和类加载全过程(1)
- JVM核心之JVM运行和类加载全过程
- JVM核心教程之JVM运行与类加载全过程详解
- JAVA 类加载过程详细讲解 -jvm加载类机制CLass Loading
- 举例说明一个 java程序的加载,初始化以及运行过程
- JVM核心机制,类加载全过程
- 222_尚学堂_高淇_java300集最全视频教程_JVM核心机制_深入类加载器_自定加密解密类加载器
- JVM核心之JVM运行和类加载全过程
- Java整个编译以及运行的过程
- Java程序运行内容加载过程