JVM-JAVA-类加载过程

JVM源码

  • [类加载到 JVM 的过程](#类加载到 JVM 的过程)
    • [通过 java 命令执行代码的流程](#通过 java 命令执行代码的流程)

类加载到 JVM 的过程

在运行一个 main 函数启动程序是,首先需要类加载起把主类加载到 JVM 中

通过 java 命令执行代码的流程

loadClass的类加载过程有如下几步:

类被加载到方法区中后主要包含 运行时常量池 (jvm 常量池)、类型信息字段信息方法信息类加载器的引用 、对应class实例的引用等信息。

类加载器的引用:这个类到类加载器实例的引用

对应class实例的引用:类加载器在加载类信息放到方法区中后,会创建一个对应的Class 类型的对象实例放到堆(Heap)中, 作为开发人员访问方法区中类定义的入口和切入点。
注意 :主类在运行过程中如果使用到其它类,会逐步加载这些类。

类不是一次性全部加载的,是使用到时才加载。

··············································2024.6.4补充··············································

类加载过程主要是通过类加载器来实现的,Java里有如下几种类加载器

引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如rt.jar、charsets.jar等

扩展类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR类包

应用程序类加载器:负责加载ClassPath路径下的类包,主要就是加载你自己写的那些类

自定义加载器:负责加载用户自定义路径下的类包

相关推荐
笨蛋不要掉眼泪16 小时前
Sentinel 流控规则详解:三种模式与三种效果实战指南
java·jvm·数据库·后端·sentinel
百锦再17 小时前
Java IO详解:File、FileInputStream与FileOutputStream
java·开发语言·jvm·spring boot·spring cloud·kafka·maven
山北雨夜漫步17 小时前
点评day05 秒杀优化-利用消息队列实现异步写入数据库
jvm
一个响当当的名号17 小时前
lectrue16 二阶段锁
jvm·数据库
山北雨夜漫步19 小时前
点评day04 Redisson
java·jvm
Andy Dennis19 小时前
Java&Go 内存管理
java·jvm·go
Dylan的码园2 天前
从软件工程师看计算机是如何工作的
java·jvm·windows·java-ee
百锦再2 天前
HashMap、Hashtable、TreeMap异同深度详解
jvm·spring boot·struts·spring cloud·缓存·kafka·tomcat
好学且牛逼的马2 天前
从“大师杰作”到“并发基石”:JUC(java.util.concurrent)发展历程与核心知识点详解(超详细·最终补全版)
jvm
知识即是力量ol2 天前
Java 虚拟机:JVM篇
java·jvm·八股