首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
JVM(Java捏造机)的核心构成
返回列表
发新帖
JVM(Java捏造机)的核心构成
[复制链接]
发表于 2025-10-12 08:01:43
|
显示全部楼层
|
阅读模式
1. 类加载器(Class Loader)
功能
:负责将.class文件加载到内存,并转换为JVM可辨认的数据结构。
分类
:
启动类加载器(Bootstrap Class Loader)
:加载JAVA_HOME/lib下的核心类库(如rt.jar)。
扩展类加载器(Extension Class Loader)
:加载JAVA_HOME/lib/ext下的扩展类。
应用步调类加载器(Application Class Loader)
:加载用户类路径(ClassPath)的类。
自界说类加载器
:用户可继承ClassLoader实现自界说加载逻辑。
双亲委派模子
:优先由父类加载器实行加载类,克制重复加载并确保
安全
。
2. 运行时数据区(Runtime Data Areas)
JVM内存管理的核心地域,分为线程私有和共享地域:
2.1 线程私有地域
步调计数器(Program Counter Register)
:
记载当火线程实行的字节码指令地点。
唯一不会发生内存溢出的地域。
捏造机栈(Java Virtual Machine Stack)
:
存储
方法调用的栈帧(Frame),每个栈帧包罗:
局部变量表
:方法参数和局部变量。
操纵数栈
:实行字节码指令的工作区。
动态链接
:指向运行时常量池的方法引用。
返回地点
:方法实行后的返回位置。
大概抛出StackOverflowError(栈深度过大)和OutOfMemoryError(扩展失败)。
本地方法栈(Native Method Stack)
:
为Native方法(如C/C++实现)服务,结构与捏造机栈类似。
2.2 线程共享地域
堆(Heap)
:
存储
全部对象实例和数组。
分为新生代(Young Gen)和老年代(Old Gen):
新生代
:Eden区、Survivor区(From/To),使用复制算法采取。
老年代
:存放长期存活对象,使用标志-整理或标志-扫除算法。
大概抛出OutOfMemoryError。
方法区(Method Area)
:
存储
类元数据(如类名、字段、方法)、常量池、静态变量等。
实现变革
:
JDK 8前
:永世代(PermGen),受JVM内存限定。
JDK 8+
:元空间(Metaspace),使用本地内存(Native Memory)。
运行时常量池(Runtime Constant Pool)
:
方法区的一部门,存储类文件中的常量(如字符串字面量、符号引用)。
3. 实行引擎(Execution Engine)
负责将字节码翻译为呆板码并实行:
表明器(Int
erp
reter)
:
逐行表明实行字节码,启动速率快但实行服从低。
即时编译器(JIT Compiler)
:
将热门
代码
(频仍实行的
代码
)编译为本地呆板码,提拔实行服从。
主流JVM(如HotSpot)采取分层编译(C1、C2编译器)。
垃圾采取器(Garbage Collector)
:
主动采取堆中不再使用的对象内存,常见算法:
标志-扫除(Mark-Sweep)
:简单但产生内存碎片。
复制(Copying)
:用于新生代,无碎片但内存使用率低。
标志-整理(Mark-Compact)
:用于老年代,克制碎片。
4. 本地方法接口(JNI, Java Native Interface)
功能
:答应Java
代码
调用本地方法(Native Method,如C/C++库)。
示例
:System.currentTimeMillis()底层通过JNI调用操纵体系
API
。
5. 本地方法库(Native Libraries)
构成
:包罗JVM所需的本地库(如libjvm.so、libjava.so)。
作用
:支持JVM与操纵体系交互(如线程调治、文件操纵)。
JVM内存结构表示图
总结
核心组件
:类加载器、运行时数据区、实行引擎、本地接口及库。
内存管理
:堆和方法区是内存管理的重点,垃圾采取机制保障内存高效使用。
性能
优化
:通过JIT编译、分代采取、元空间更换永世代等本领提拔服从。
线程
安全
:私有地域隔离线程状态,共享地域需同步机制(如锁、CAS)。
明白JVM构成及工作原理,是优化Java步调
性能
、办理内存走漏和并发题目的关键根本。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
温锦文欧普厨电及净水器总代理
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表