JVM类加载机制

JVM类加载机制

加载Loding

在JDK1.8版本是在我们创建的对象的时候把我们的类加载到我们的元空间进行存储,这个元空间包含了我们的类名,父类名,方法,属性什么的。

元空间是懒加载的,如果我们这个类已经被加载到元空间,那么就会直接使用加载好的,否则才会执行加载。

这些操作由我们类的加载器完成。

连接Liking

验证

对我们加载的类进行验证,确保符合我们的JVM规则。保证我们虚拟机的安全,比如一个类继承了一个final的类,那么这个类就不能通过验证。

准备

为类的静态变量分配空间,和设置静态变量的默认初始值(0),

解析

将类、接口、字段和方法的符号引用解析为直接引用。符号引用就是表示这些的目标信息。

初始化

初始化是我们加载的最后一阶段,会把静态变量设置一些初始值,然后静态代码块也会被执行 for 可以执行一些初始化操作。这个操作是由类加载器实现的

类加载器

类加载器,就是类加载器收到了一个类的加载,他首先会委托给父类进行加载,如果父类无法加载子类才会加载。

启动类加载器

负责加载Java核心库,是虚拟机的一部分,他不是Java类,是C++实现的。

扩展类加载器

加载Java的扩展库比如JDBC

应用程序加载类

就是加载我们平时的类。

相关推荐
HwJack2013 小时前
Flask+SQLite简易后端数据存储实现原理
jvm·sqlite·flask
Dicky-_-zhang14 小时前
Redis集群模式详解与实战配置
java·jvm
Kiling_070414 小时前
面向对象和集合编程题 ( 一 )
jvm·windows
上弦月-编程14 小时前
Java类与对象:编程核心解密
java·开发语言·jvm
Dicky-_-zhang15 小时前
线上故障排查与应急响应实战:从零开始建立你的SRE体系
java·jvm
大大杰哥15 小时前
从 Volatile 到 ThreadLocal:Java 线程安全机制备忘
java·开发语言·jvm
AI人工智能+电脑小能手15 小时前
【大白话说Java面试题 第67题】【JVM篇】第27题:生产环境服务器变慢,诊断思路和性能评估谈谈?
java·服务器·jvm·面试
Dicky-_-zhang15 小时前
服务网格Istio mTLS配置实战
java·jvm
Dicky-_-zhang15 小时前
服务网格实战:Istio与Linkerd对比选型与落地实践
java·jvm
存在的五月雨15 小时前
JVM 入门学习笔记(内存模型 / GC / 类加载机制)
jvm·笔记·学习