jvm类的加载过程

简介: jvm类的加载过程

   类的生命周期和对象的生命周期的关系是什么呢?(从这里可以看到

   类的加载过程是类的生命周期中的一部分。

   类的生命周期分为5个阶段:加载、连接、初始化、使用、卸载。

   类的加载过程详细分为5个阶段。分别是加载、验证、准备、解析、初始化。

   加载:加载二进制.class文件等。

   验证:对加载的信息进行合法性验证,避免对虚拟机自身造成危害。

   准备:为静态变量分配内存。

   解析:

   初始化:


   从上面也可以看出类加载的第五步是类初始化,也就是说在类初始化之前已经完成了类加载的前面几步。那么    什么时候会进行类初始化呢?只有下面五种:

   1、当new关键字去实例化对象时,读取或设置类的静态变量时,调用一个类的静态方法时。

   2、用反射对类进行反射调用的时候,如果类没有进行过初始化。

   3、初始化一个子类,若它的父类没有进行过初始化,先初始化父类,再初始化子类。

   4、虚拟机启动时,会初始化程序的主类,也就是main方法所在的类。

   5、(这一种目前还没懂)


   类的加载过程基本是在方法区进行的,对象的创建在堆区和栈区,程序运行的状态在程序计数器中。联想一下:spring框架可以管理对象在什么时候创建。

   

   类的加载过程是理论上的,落地的是类加载器。

   //TODO:

   双亲委派模型

   


参考文章:

   (类的加载机制及对象的生命周期)从这篇文章中了解了对象的生命周期和类的生命周期,它们两个的关系。

   《深入理解Java虚拟机》第七章


总结:

   能说出来才是真的明白了,说不出来就是还模糊着呢。


相关文章
|
2月前
|
安全 Java 应用服务中间件
JVM常见面试题(三):类加载器,双亲委派模型,类装载的执行过程
什么是类加载器,类加载器有哪些;什么是双亲委派模型,JVM为什么采用双亲委派机制,打破双亲委派机制;类装载的执行过程
JVM常见面试题(三):类加载器,双亲委派模型,类装载的执行过程
|
28天前
|
缓存 前端开发 Java
JVM知识体系学习二:ClassLoader 类加载器、类加载器层次、类过载过程之双亲委派机制、类加载范围、自定义类加载器、编译器、懒加载模式、打破双亲委派机制
这篇文章详细介绍了JVM中ClassLoader的工作原理,包括类加载器的层次结构、双亲委派机制、类加载过程、自定义类加载器的实现,以及如何打破双亲委派机制来实现热部署等功能。
38 3
|
28天前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
35 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
6月前
|
前端开发 安全 Java
深入浅出JVM(八)之类加载器
深入浅出JVM(八)之类加载器
|
4月前
|
Java Perl
JVM内存问题之如何统计在JVM的类加载中,每一个类的实例数量,并按照数量降序排列
JVM内存问题之如何统计在JVM的类加载中,每一个类的实例数量,并按照数量降序排列
|
5月前
|
Java 编译器
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
50 1
|
4月前
|
存储 安全 Java
开发与运维引用问题之JVM类加载过程如何解决
开发与运维引用问题之JVM类加载过程如何解决
29 0
|
6月前
|
监控 Java 测试技术
滚雪球学Java(45):探秘Java Runtime类:深入了解JVM运行时环境
【5月更文挑战第20天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
45 1
滚雪球学Java(45):探秘Java Runtime类:深入了解JVM运行时环境
|
4月前
|
存储 算法 Java
JAVA程序运行问题之Java类加载到JVM中加载类时,实际上加载的是什么如何解决
JAVA程序运行问题之Java类加载到JVM中加载类时,实际上加载的是什么如何解决
|
5月前
|
安全 前端开发 Java
《JVM由浅入深学习【一】 》JVM由简入深学习提升(类加载过程+父子类加载过程+类加载器+双亲委派机制)
《JVM由浅入深学习【一】 》JVM由简入深学习提升(类加载过程+父子类加载过程+类加载器+双亲委派机制)
39 0