jvm 加载class文件过程

jvm 加载class文件分为装载-链接-初始化三个过程。

load -------->link

verify

prepare

resolve     ---------->initialize

    (类加载过程)

bootstrap

class Loader

|

|

extenstion

class loader

|

|

system

class Loader

|

|

-----------

user-define      user-define

class loader      class loader

sun jdk classLoader 类继承关系

时间: 2024-10-08 00:58:17

jvm 加载class文件过程的相关文章

JVM加载class文件的原理

当Java编译器编译好.class文件之后,我们需要使用JVM来运行这个class文件.那么最开始的工作就是要把字节码从磁盘输入到内存中,这个过程我们叫做[加载 ].加载完成之后,我们就可以进行一系列的运行前准备工作了,比如: 为类静态变量开辟空间,将常量池存放在方法区内存中并实现常量池地址解析,初始化类静态变量等等.这篇文章我们要好好谈谈JVM是如何加载class文件的? 1.JVM加载类的过程       当我们使用命令来执行某一个Java程序(比如Test.class)的时候:java T

JVM加载类的过程,双亲委派机制中的方法

JVM加载类的过程: 1)JVM中类的整个生命周期: 加载=>验证=>准备=>解析=>初始化=>使用=>卸载  1.1.加载 类的加载阶段,主要是获取定义此类的二进制字节流,并将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构,最后在Java堆中生成一个代表这个类的java.lang.Class对象作为方法区这些数据的访问入口.相对于类加载过程的其他阶段,加载阶段是开发期可控性最强的阶段.我们可以通过定制不通的类加载器,也就是ClassLoader来控制二进制

JVM加载class文件的原理机制

JVM加载class文件的原理机制 1.Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的, 类装载器所做的工作实质是把类文件从硬盘读取到内存中 2.java中的类大致分为三种:     1.系统类     2.扩展类     3.由程序员自定义的类 3.类装载方式,有两种     1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到jvm中,     2.显式装载, 通过class.forname()等方法,

Java提高篇——JVM加载class文件的原理机制

1.JVM 简介 2.JVM 的组成部分 3.JVM加载class文件的原理机制 在面试java工程师的时候,这道题经常被问到,故需特别注意. 回到顶部 1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从“Hello World ”开始的,然后会写个复杂点class ,然后再找一些开源框架,比如Spring ,Hibernate 等等,再然后就开发企业级的应用,比如网站.企业内部应用.实时交易系统等等,直到某一天突然发现做的系统咋就这么慢呢,而且时

jvm加载类的过程

前言: 说下这篇文章的来龙去脉:昨天接到了阿里小哥哥的面试电话,小哥哥问我jvm加载类的过程.然后我巴拉巴拉说了一堆classLoader装载类的过程.然后小哥哥说我不是要问这些...好吧装载加载傻傻分不清楚. jvm加载类过程(本人不会,以下内容由小哥哥解释给我听的): classLoader装载类 连接(包括验证,准备,解析:小哥哥详述了这三个步骤..因为我比较疑问哈哈哈) 初始化 (小哥哥开始问我这个具体初始化过程) ( 本人其实脑子一片浆糊,很多概念傻傻分不清除)比如:类的初始化和对象的

JVM加载.class文件的原理机制

当java编译器将.java文件编译成.class文件后,需要JVM执行.class文件,将class文件加载到内存中,从而对数据进行校验.解析和初始化. 1.类加载的一般过程 (1)寻找jre目录,寻找jvm.dll,并初始化JVM: (2)产生一个Bootstrap Loader(启动类加载器): (3)Bootstrap Loader自动加载Extended Loader(标准扩展类加载器),并将其父Loader设为Bootstrap Loader. (4)Bootstrap Loader

JVM加载class文件的顺序

http://blog.csdn.net/jackfrued/article/details/44921941第21题 类的加载是指把类的.class文件中的数据读入到内存中,通常是创建一个字节数组读入.class文件,然后产生与所加载类对应的Class对象.加载完成后,Class对象还不完整,所以此时的类还不可用.当类被加载后就进入连接阶段,这一阶段包括验证.准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤.最后JVM对类进行初始化,包括: 1)如果类存在

jvm加载类

作为jvm的用户,从使用者角度来看,我们给jvm输入一个class文件,得到了一个Class对象.我们可以猜想下jvm加载类的过程:class文件有规定的格式,jvm去解析class文件流,读magic, major version, minor version等值(最简单的举例),然后生成Klass对象,并放到一个map中. 首先有个全局的认识,jvm把已加载的类放在一个hashtable中.class SystemDictionary : AllStatic {    // Hashtabl

jvm加载class原理

当Java编译器编译好.class文件之后,我们需要使用JVM来运行这个class文件.那么最开始的工作就是要把字节码从磁盘输入到内存中,这个过程我们叫做[加载 ].加载完成之后,我们就可以进行一系列的运行前准备工作了,比如: 为类静态变量开辟空间,将常量池存放在方法区内存中并实现常量池地址解析,初始化类静态变量等等.这篇文章我们要好好谈谈JVM是如何加载class文件的? 1.JVM加载类的过程 当我们使用命令来执行某一个Java程序(比如Test.class)的时候:java Test (1