虚拟机类加载机制.
虚拟机把描述类的数据从class文件加载到内存,并对数据进行校检、转换解析和初始化,最终形成可已被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。类的加载、连接和初始化过程都是在程序运行期间完成的,这样虽然会令类加载时稍微增加一些性能开销,但是会为java应用程序提供高度灵活性,java语言运行期类加载的特性。类从被加载到虚拟机内存中开始,到卸载出内存为止,他的整个生命周期包括:加载
虚拟机把描述类的数据从class文件加载到内存,并对数据进行校检、转换解析和初始化,最终形成可已被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。
类的加载、连接和初始化过程都是在程序运行期间完成的,这样虽然会令类加载时稍微增加一些性能开销,但是会为java应用程序提供高度灵活性,java语言运行期类加载的特性。
类从被加载到虚拟机内存中开始,到卸载出内存为止,他的整个生命周期包括:加载,验证,准备,解析,初始化,使用,卸载7个阶段,其中验证,准备,解析3个部分统称为连接,
堆分为:新生代(1个eden、2个surivor)、老年代
方法区:永生代
分配担保:老年代
虚拟机中第一个被执行的< clinit >()方法的类肯定是java.lang.Object
双亲委派模型 一种启动类加载器(bootstrap classLoader),这个类加载器使用C++语言实现,是虚拟机的一部分;另一种就是所有其他的类加载器,这些类加载器都由java语言实现,独立于系统外部,并且都是继承自抽象类java.lang.ClassLoader.
栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈,的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始到执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。
更多推荐
所有评论(0)