码迷,mamicode.com
首页 > 其他好文 > 详细

JVM类加载机制理解

时间:2019-10-05 20:31:35      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:父类   nbsp   定义   设置   内存结构   应用   com   不同   符号   

JVM的内存结构:
线程共享:堆(存放创建的各种对象),方法区(存放类信息,静态变量,常量池)
线程私有:栈(每个线程都有自己的栈空间,存放每个方法的局部变量),程序计数器(记录当前字节码指令的位置,执行到拿哪一条字节码指令),本地方法栈(跟栈类似,不同的是执行的native方法)
 

JVM什么时候会加载一个类?

代码用到这个类的时候,就加载

 
加载类的过程是什么?
加载   ->  验证 (检验加载进的字节码,是否符合规范) ->  准备(给 静态修饰的变量分配空间,设置默认值) ->  解析(符号引用变为直接引用,程序运行的时候,根据头指针,找到JVM指令码的地址) ->  初始化(执行类的初始化代码) ->  使用  ->  卸载
 
技术图片

 

 

 

 类加载器和双亲委派模型:

1.启动类加载器:加载 JDK 目录下的核心类库

2.拓展类加载器: JRE   ‘lib/ext’ 目录下的父类

3.应用程序类加载器: “classPath”环境指定的路径下的类

4.自定义类加载器: 根据你自己的需求加载类

 技术图片

 

 

 

 

JVM类加载机制理解

标签:父类   nbsp   定义   设置   内存结构   应用   com   不同   符号   

原文地址:https://www.cnblogs.com/Jemb/p/11625391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!