认识JVM

初识jvm

什么是jvm

jvm本质上是一个运行在计算机上的程序,他的职责是运行java字节码文件

JVM的功能

01 解释和运行

对字节码文件中的指令,实时的解释成机器码,让计算机执行

02内存管理

自动为对象、方法等分配内存

自动的垃圾回收机制,回收不再使用的对象

03即时编译

对热点代码进行优化,提升执行效率

常见的JVM

常见的JVM:java虚拟机规范

《java虚拟机规范》由Oracle规定,内容主要包含了java虚拟机在设计和实现是需要遵守的规范,主要包含class字节码文件的定义、类和接口的加载和初始化、指令集等内容。

《java虚拟机规范》是对虚拟机设计的要求,而不是对java设计的要求,也就是说虚拟机可以运行在其他语言比如Groovy、Scala生成的class字节码文件之上。

官网地址:https//docs.oracle.com/javase/specs/index.html

常见的JVM -HotSpot的发展历程

字节码文件详解

java虚拟机的组成

字节码文件的组成

推荐使用工具jclasslib查看字节码文件

https://github.com/ingokegel/jclasslib/releases/tag/6.1

字节码文件的组成部分-magic魔数

字节码文件组成部分-版本号

官网https://arthas.aliyun.com/doc/

下载好之后是一个压缩包

使用java -jar 文件名.jar启动

jvm的组成

类的生命周期

生命周期概述

加载阶段

方法区只是比较虚的概念,java早期的版本方法区叫永久代,比较新的版本叫元空间

相关推荐
m0_7485548134 分钟前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
lee_curry42 分钟前
第四章 jvm中的垃圾回收器
java·jvm·垃圾收集器
wanhengidc1 小时前
云手机 高振畅玩不踩坑
运维·服务器·安全·web安全·智能手机
有谁看见我的剑了?1 小时前
linux 添加硬盘后系统识别不到硬盘处理
linux·运维·服务器
JoyCong19981 小时前
ToDesk远程屏幕墙技术白皮书:如何重塑全局运维视界
运维·电脑·远程工作
偶尔上线经常挺尸2 小时前
《100个“反常识”经验15:Nginx 502排查:从应用到内核》
运维·nginx·性能调优·反向代理·502错误·http排错
阿正呀2 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
2501_901200532 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
思茂信息2 小时前
CST软件如何进行参数化扫描?
运维·开发语言·javascript·windows·ecmascript·软件工程·软件需求
计算机安禾3 小时前
【Linux从入门到精通】第31篇:防火墙漫谈——iptables与firewalld防护指南
linux·运维·php