JVM的基础介绍(1)

本文是"深入学习JVM"系列的第一篇文章,主要介绍JVM、JVM的3大子系统各自的功能。

我是蚊子码农,欢迎各位的点赞、关注和收藏,有了你们的激励,我会带来更好的作品。

一、JVM的介绍

JVM,即Java Virtual Machine,中文名Java虚拟机。

它的作用,就是将我们编写的项目代码,转化为操作系统 可以理解的源码,进而在机器上运行。

它的突出本领,就是使得代码真正脱离机器,无论是哪种机器,只要实现了JVM,相同的class文件,就能得到相同的运行结果。

JVM运行于操作系统上,从操作系统的角度,它是一个普通的进程。而从Java开发者的角度出发,它实现了极好的封装,我们对其不甚了解,只知道它是运行Java项目所必备的工具。

尝试来剖析这个神秘的机器。

二、学习JVM,学什么?

JVM,相当于运行在操作系统上的操作系统,所以,我们从操作系统的角度来分析这个JVM。

我们知道,操作系统的五大功能是:内存管理、进程管理、CPU管理、存储管理和IO管理。

第一,内存管理策略

由于JVM毕竟不是真实的操作系统,所以我们主要学习的,是它先进的内存管理策略。

我们都知道,在Java中,无需手动申请内存,也无需手动释放内存,这就是非常先进的"自动化内存管理策略"。

第二,性能调优策略

在实际工作中,我们很少直接和内存打交道,更多的是进行调优,所以调优方法也必不可少。

三、分析JVM

我们知道,在完成Java项目之后,我们需要先编译 ,才能使其在JVM上运行。

编译得到的是class文件,这种文件在JVM上,一定会被翻译成某种结构,进而能够运行。

这就是第一个学习的知识,class文件转化系统。

无论class文件最终转化成什么结构,都需要将数据落实在内存上。

这就是第二个知识,运行时数据区。

JVM是操作系统上的一个进程,那么它就能掌握一段时间的CPU,这时候,如何运行我们的main语句呢?

这就是第三个知识,执行引擎。

四、结语

我是蚊子码农,如有补充或者疑问,欢迎在评论区留言。个人的知识体系可能没有那么完善,希望各位多多指正,谢谢大家。

相关推荐
m0_734949794 小时前
MySQL如何配置定时清理过期备份文件_find命令与保留周期策略
jvm·数据库·python
m0_514520574 小时前
MySQL索引优化后性能没提升_通过EXPLAIN查看索引命中率
jvm·数据库·python
Polar__Star6 小时前
如何在 AWS Lambda 中正确使用临时凭证生成 S3 预签名 URL
jvm·数据库·python
m0_743623926 小时前
React 自定义 Hook 的命名规范与调用规则详解
jvm·数据库·python
gmaajt9 小时前
mysql如何检查数据库表是否存在损坏_使用CHECK TABLE命令修复
jvm·数据库·python
2301_773553629 小时前
CSS如何对用户访问过的链接进行降级颜色处理_使用-visited伪类改变颜色
jvm·数据库·python
2301_815279529 小时前
Golang怎么理解Go的sync.Pool底层_Golang如何理解Pool的本地缓存和GC清理机制【详解】
jvm·数据库·python
2301_764150569 小时前
MySQL迁移过程如何避免数据不一致_利用强一致性备份方案
jvm·数据库·python
m0_716430079 小时前
Redis如何处理预热失效引起的开局雪崩
jvm·数据库·python
m0_3776182310 小时前
c++文件锁使用方法 c++如何实现多进程文件同步
jvm·数据库·python