实用指南:JVM篇:一文读懂JVM:工作原理之核心技术解析

news/2025/11/23 18:21:24/文章来源:https://www.cnblogs.com/ljbguanli/p/19261186

实用指南:JVM篇:一文读懂JVM:工作原理之核心技术解析

引言
本文将从类的生命周期、类加载机制、JVM的内存区域、对象的创建过程、对象的内存分配方式、垃圾标记算法、垃圾回收算法、垃圾回收器等专题逐一为大家深入浅出探究JVM工作原理。
简单来讲,我们程序员写好一份java档案,然后由java编译器编译成class文件,该class档案就存在磁盘当中了,JVM需要将这个文档从磁盘上加载到JVM的内存当中以待采用,当我们发出一个new的指令时,JVM就会从内存当中去找这个对象的类元信息,然后根据这个类元信息创建对象,并且将这个对象放在JVM内存当中以待运用…等到采用完毕,就会将这个对象回收。
上述呢是一个整体的思路,围绕这个思路,大家接下来进入正题…

  1. 类的生命周期
    加载、连接、初始化(用到的时候才会初始化)、应用、卸载。

连接分为验证、准备、解析。

加载:从磁盘到JVM内存。

准备:初始化静态变量,比如int初始化0、boolean初始化false、静态对象初始化null,为静态变量设置初始值隐式赋值

解析:字符引用解析成内存直接引用。

字符引用:编译阶段生成的间接引用,经过类全限定名、字段名、方式名等符号描述目标位置(类全限定名)。
直接引用:运行时生成的指向目标内存地址的引用

初始化:静态变量显式赋值

2)类加载机制

启动类加载器,BootStrup ClassLoader:负责加载JVM运行的位于JRE的lib目录下的核心类库,比如rt.jar、charsets.jar等。
扩展类加载器,Ext ClassLoader:负责加载JVM运行的位于JRE的lib目录下的ext扩展目录中的jar类包。
应用类加载器,App ClassLoader:负责加载ClassPath路径下的类包
自定义加载器:负责加载用户自定义路径下的类包。

双亲委派机制:只有父加载器反馈无法完成加载请求时,子加载器才会尝试自己去加载。
工作原理:
① 当Java程序需要加载一个类时,开始校验是否已被自己加载,如没有则会委托给当前类加载器的父类加载器进行加载。
② 父类加载器会按照相同的方式尝试加载该类。如果父类加载器能够成功加载该类,则加载过程结束。
③ 如果父类加载器无法加载该类,则会将加载请求再次委托给它的父类加载器,直到达到顶层的引导类加载器。
④ 引导类加载器是Java虚拟机内置的类加载器,它负责加载核心类库,如java.lang包下的类。
⑤ 如果引导类加载器也无法加载该类,则会回到初始的类加载器,尝试启用自身的加载机制加载该类。
⑥ 如果自身的加载机制仍然无法加载该类,则会抛出ClassNotFoundException异常。

作用:避免类的重复加载,保证唯一性,沙箱安全机制,确保核心类库的安全,防止恶意代码替换核心类库。
优点:遵循单一职责原则,不同的类加载器加载不同的类。

JVM类加载机制详细:从JDK源码级别深度解析JVM类加载机制

打破双亲委派机制

tomcat多个应用。需打破双亲委派机制。

自定义类加载器,继承classloader,重写findClass,复用loadclass方法。

如何打破双亲机制?

借助自定义类加载器,继承classloader,重写loadclass办法,非自己包下面的类则由父加载器去加载,加载自己的包下面的类。

JDK9 扩展类加载器变成平台类加载器。

优化:将类规划到各个模块之中,在委派给父加载器之前,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/974113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年西北地区软化水设备厂家选择指南,陕西、甘肃、新疆、宁夏四省首选西安紫云,行业口碑品质靠谱推荐

随着工业自动化升级与环保政策收紧,软化水设备作为工业用水处理的核心设备,市场需求持续攀升。本榜单基于技术专业性、行业适配性、服务覆盖力三大维度,结合2025年《中国全自动软化水行业市场前景预测报告》及产业调…

java geotiff的空间索引如何构建

在Java中,可以使用GeoTools库来处理GeoTIFF文件并构建空间索引。GeoTools是一个开源的Java GIS工具库,支持多种地理空间数据格式和空间索引算法。以下是使用GeoTools构建GeoTIFF空间索引的基本步骤:添加GeoTools依赖…

java for linux 安装

在 Linux 系统上安装 Java 通常可以通过以下几种方式完成:? 1. 使用官方仓库安装(推荐)方法一:使用 yum(适用于 CentOS/RHEL)sudo yum install java-11-openjdk方法二:使用 dnf(适用于 Fedora)sudo dnf inst…

【OI 复健计划】板子复习

已经菜到板子都敲不熟练了 >_<。 敲板子前发现自己已经忘记快输怎么写了,没救了(笑哭)。 bfs板子 来自信奥一本通 (唉,还是喜欢手写队列...该改改了) 传送门点击查看代码 #include<bits/stdc++.h> …

时间即生命 梁实秋

最令人怵目惊心的一件事,是看着钟表上的秒针一下一下的移动,每移动一下就是表示我们的寿命已经缩短了一部分。再看看墙上挂着的可以一张张撕下的日历,每天撕下一张就是表示我们的寿命又缩短了一天。因为时间即生命。…

AI元人文:当理论成为悬鉴 ——兼论独立思想者的现代困境

AI元人文:当理论成为悬鉴 ——兼论独立思想者的现代困境 当岐金兰最后一次关闭那篇无人问津的文稿时,她明白了一个残酷的真相:有些思想,注定要成为高悬于时代之上的明镜,而非铺就于脚下的台阶。 “AI元人文”这个…

2025年西北地区无动力无阀滤池水处理设备厂商怎么选?陕西甘肃新疆宁夏四省,优质品牌行业口碑选择指南

随着环保要求的不断提高和水资源短缺问题的日益突出,无动力无阀滤池水处理设备作为一种高效、节能的水处理解决方案,受到了市场的广泛关注。本榜单基于技术先进性、产品性能、应用案例和市场口碑四大维度,结合行业报…

2025西北地区反渗透一体机品牌怎么选?陕西、甘肃、新疆、宁夏四省多场景净水提纯设备源头工厂选择指南

随着环保政策的持续收紧和水处理技术的不断升级,反渗透一体机作为高效水质净化设备,在饮用水处理、污水处理及回用等领域发挥着越来越重要的作用。本榜单基于技术实力、产品性能、应用案例及服务体系四大维度,结合行…

Microsoft将.NET Aspire 改成了Aspire

Microsoft 于 11 月 11 日在 .NET Conf 2025 期间宣布了 Aspire 13,称其为其分布式应用开发框架迄今为止最大规模的发布。它还去掉了名称中的“.NET”部分,显然是为了反映更广泛的语言支持和抽象。不过微软公司尚未对…

2025年西北地区净水、纯水、软化水设备厂家最新推荐!一体化净水处理设备、反渗透一体机、无动力无阀,陕西甘肃新疆宁夏四省,优质品牌选择指南

随着城镇化进程加快与环保政策收紧,净水、纯水、软化水设备成为解决村镇饮水安全、工业用水净化的核心装备。本榜单基于技术实力、区域适配性、案例验证三大维度,结合《2024中国水处理设备行业发展报告》及环保项目招…

2025/11/24

2025/11/24在 Java 中,try-catch 是异常处理的核心语法,用于捕获并处理程序运行时可能出现的错误(如空指针、数据库连接失败、文件找不到等),避免程序直接崩溃。 异常:程序运行时的非正常情况(如 NullPointerEx…

医疗环境中的防火墙部署策略解析

本文深入探讨了在医疗IT环境中不同类型防火墙的部署策略,包括UTM防火墙对用户的保护、数据中心状态检测防火墙、微隔离技术实现零信任安全、云环境防护方案以及集中管理的重要性。医疗环境中的防火墙部署策略解析 防火…

自注意机制

自注意力机制(Self-Attention Mechanism),也称为内部注意力机制(Intra-Attention Mechanism),是一种在深度学习模型中,特别是在自然语言处理(NLP)和计算机视觉(CV)任务中广泛使用的注意力机制。它允许模型在…

百练 / 2025计算机学院推免上机考试(tm2025cs) 题单完整分析

✅ 百练 / 2025计算机学院推免上机考试(tm2025cs) 题单完整分析 📌 题目分析总表(A–H)题号 题目名称 百练链接 通过率 通过数/提交数 考察知识点 难度 题目特点 & 训练建议A Lab杯 http://bailian.openjudge.…

2025 最新一体化净水处理设备厂家 TOP5 权威推荐:工业民用净化优选

随着城镇化进程加快与环保政策收紧,一体化净水处理设备成为解决村镇饮水安全、工业用水净化的核心装备。本榜单基于技术实力、区域适配性、案例验证三大维度,结合《2024中国水处理设备行业发展报告》及环保项目招投标…

计算机网络:知识点梳理及讲解(三)数据链路层 - 教程

计算机网络:知识点梳理及讲解(三)数据链路层 - 教程2025-11-23 18:04 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; d…

50043_基于微信小程序的小区物业管理系统

1.项目包含 项目源码、项目文档、数据库脚本、软件工具等资料; 带你从零开始部署运行本套系统。 2.项目介绍 由于传统依靠微信小程序的小区物业管理系统在信息管理上存在很大难题,比如操作困难,容错率低,管理人员处…

2025/11/23

2025/11/23JDBC是使用java语言操作关系型数据库的一套API //1.注册驱动 Class.farName("com.mysql.jdbc.Driver"); //2.获取连接对象 String url="jdbc:mysql:";//jdbc:mysql://IP:端口/数据库 St…

Widnwos+Codex+国内大模型 - unknown

Widnwos+Codex+国内大模型 安装Codex 打开官网,复制安装命令执行安装命令 以管理员身份打开PowerXshell,执行安装命令npm i -g @openai/codex,笔者已经安装过,后补的笔记,没有当时的截图。注册国内模型账号本文是…

# 二分图最大匹配

二分图最大匹配 匈牙利算法 \(\mathcal O(mn)\) 匈牙利算法二分图最大匹配如下图所示:这时, 我们一个一个看 首先先匹配第一个 我们总是找对方能连上的第一个进行匹配匹配上一个之后,再匹配第二个 ... 匹配到第三个…