当前位置:首页 > Java技术 > JVM类的加载过程

JVM类的加载过程

2022年08月05日 19:23:57Java技术4

(一)类加载JVM内存中图解:

JVM类的加载过程 _ JavaClub全栈架构师技术笔记

 

(二)(JVM)工作机制:

(1)装载:查找和导入Class(二进制)文件。

(2)链接:把类的二进制数据合并到JRE中;

         ①验证:检查载入Class文件数据的正确性

         ②准备:给类的静态变量static)分配存储空间 。

         ③解析:将符号引用--转成-->直接引用

 (3)初始化:对(static)类的静态变量静态代码块儿执行初始化操作。

 【注意:Java动态拓展 由运行期动态加载动态链接实现的】比如:如果编写一个使用接口的应用程序,可以等到运行时再指定其实际的实现(多态),解析过程有时候还可以在初始化之后执行;比如:动态绑定(多态)

(三)过程详解:

(1)加载:类的Class文件的二进制数据---读入内存-->放在方法区,然后再创建java.lang.Class对象【用来封装类在方法区内的数据结构】

         加载.class文件方式:

JVM类的加载过程 _ JavaClub全栈架构师技术笔记---->对应JVM虚拟机做的事儿

JVM类的加载过程 _ JavaClub全栈架构师技术笔记

 

(二)验证:JVM类的加载过程 _ JavaClub全栈架构师技术笔记

 

(三)准备:为类变量分配内存并设置类变量初始值方法区中进行】:

JVM类的加载过程 _ JavaClub全栈架构师技术笔记

 

(四)解析:【常量池的】符号引用--->直接引用的过程:

JVM类的加载过程 _ JavaClub全栈架构师技术笔记

(五)初始化【真正执行Java代码】:为类的静态变量赋正确的初始值。

(1)java中对类变量进行初始化值设定的两种方式:JVM类的加载过程 _ JavaClub全栈架构师技术笔记

(2)JVM初始化步骤:JVM类的加载过程 _ JavaClub全栈架构师技术笔记

 

(3)初始化阶段执行构造器的过程:

JVM类的加载过程 _ JavaClub全栈架构师技术笔记

 

(4)初始化的触发条件: 

JVM类的加载过程 _ JavaClub全栈架构师技术笔记

作者:Zeus_龙
来源链接:https://blog.csdn.net/qq_36381855/article/details/79980619

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/18100.html

分享给朋友:

“JVM类的加载过程” 的相关文章

[JVM教程与调优] 为什么要学习JVM虚拟机?

[JVM教程与调优] 为什么要学习JVM虚拟机?

JVM在我们开发阶段不会用到,但是到了生产环境中,那么就会变得非常重要了。 为什么这么说呢? 一方面,因为我们的生产环境是比较复杂的。各种可能的问题都会出现,比如说:硬盘坏了、网络坏了、CPU利用率高了等问题层次不穷。 另外一方面,在我们生产环境出现问题,还不好进行定位。因为没...

JVM 从入门到精通(二)JVM和Java体系结构

JVM 从入门到精通(二)JVM和Java体系结构

写在前面:我是「云祁」,一枚热爱技术、会写诗的大数据开发猿。昵称来源于王安石诗中一句 [ 云之祁祁,或雨于渊 ] ,甚是喜欢。 写博客一方面是对自己学习的一点点总结及记录,另一方面则是希望能够帮助更多对大数据感兴趣的朋友。如果你也对 数据中台...

JVM中有哪些垃圾收集器?

写在前面 本文隶属于专栏《100个问题搞定Java虚拟机》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见100个问题搞定Java虚拟机 解答 新生代垃圾...

JVM内存模型及垃圾收集策略解析

JVM内存模型及垃圾收集策略解析

JVM内存模型是Java的核心技术之一,之前51CTO曾为大家介绍过JVM分代垃圾回收策略的基础概念,现在很多编程语言都引入了类似Java JVM的内存模型和垃圾收集器的机制,下面我们将主要针对Java中的JVM内存模型及垃圾收集的具体策略进行综合的分析。 一 JVM内存模型...

jvm优化——运行参数篇

jvm优化——运行参数篇

在这篇文章中主要介绍jvm的一些运行参数 对jvm优化总结篇可以阅读:JVM优化——总结篇 1、jvm的运行参数 1.1、三种参数类型 jvm的参数类型分为三种,分别是: 1、标准参数: 标准参数的意思是说一般比较稳定,在以后jvm的版...

浅谈JVM内存模型

浅谈JVM内存模型

JAVA虚拟机在执行JAVA程序的时候,会把它管理的内存分成若干不同的数据区域,每个区域都有各自的用途。目前大致把JVM内存模型划分为五个区域:程序计数器,虚拟机栈,本地方法栈,堆和方法区。   程序计数器 程序计数器(ProgramCounterR...

深入理解JVM(1)——JVM内存模型

Java虚拟机的内存空间分为五个部分,分别是: 程序计数器; Java虚拟机栈 本地方法栈 堆 方法区 接下来对这五部分分别进行详细的介绍 1、程序计数器:   a)什么是程序计数器:程序计数器是内存中的一个很小...

JVM学习笔记1:Java虚拟机内存模型

JVM学习笔记1:Java虚拟机内存模型

JVM学习笔记1:Java虚拟机内存模型 学习JVM,Java虚拟机对理解Java程序执行过程和Java程序性能调优具有很大帮助。本系列博客旨在由浅到深学习并理解JVM。参考阅读:《深入理解Java虚拟机-JVM高级特性和最佳实践》。这个书写的非常好,推荐有条件的读者买一本来阅读...

JVM 算法简介

JVM 算法简介

JVM学习目录 1.JVM 概念简介 2.JVM 运行时内存 3.JVM算法简介 4.JVM 垃圾收集器 5.JVM 调优实战 通过以上的文章我们对JVM有了初步的认识,在前几篇文章中也说过一些算法知识点,今天这篇文章我们进行算法的分享 一、...

JVM-五大区

JVM-五大区

Java程序执行流程: 谈一谈Java内存区域的划分实际上是指JVM内存区域的划分,首先Java先介绍一下Java程序具体执行的过程 如上图所示,首先Java源代码们(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。