JVM -骨架篇

【投稿赢 iPhone 17】「我的第一个开源项目」故事征集:用代码换C位出道! 10w+人浏览 1.8k人参与

JVM - 骨架篇

计算机架构的本质,是在有限资源的约束下,通过一系列精妙的权衡,来追求极致的性能。在冯·诺伊曼体系下,CPU(中央处理器)、内存(Memory)、输入输出设备(I/O,磁盘),这三样构成了计算机硬件系统的最核心的闭环。任何想实现高性能、高稳定的程序,都必须将这三大核心资源的利用率和特性纳入设计考量,忽略其中一个任何一项,都可能导致程序出现瓶颈、延迟和崩坏。JVM架构也必须围绕这三大核心资源来设计,好消息是,JVM无需直接操作这些硬件,而是通过操作系统提供的抽象层来间接的管理它们。
JVM诞生篇里面,我们说詹姆斯·高斯林为解决C/C++的一些问题,引入了三大特性:可移植性安全性和健壮性简单性。我们从可移植性、安全性和健壮性出发,来看看JVM是如何实现的。

可移植性

为了解决可移植性,java采用中间语言的形式来实现,这个中间语言就是字节码(Class文件)。也就是说,JVM只认字节码,任何形式的高级语言,只要能够编译成字节码文件,符合java虚拟机规范,都能够被JVM所读取运行。由于计算机三大件间运行速度的巨大鸿沟,而编写好的Class文件,存储在磁盘上(或远程服务器),如果每次需要一个类的信息都去磁盘上获取,严重影响性能。此时内存就登场了,把已经加载过的Class文件信息保存在内存中,后续再使用时,直接从内存获取,而无需去磁盘加载。保存Class文件内容信息的地方就是方法区。

方法区(Method Area)

JVM的"信息中心",存放了关于类本身的元数据(MetaDate),包括如下内容:
类型信息:是每个被加载的类的"蓝图"或"元数据"。JVM需要这些信息来准确知道如何实例化对象、如何调用方法。包

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值