虚拟机

class 和 java类库都加载到内存
利用字节码解释器 逐行解释 对于热点代码用即时编译器处理
利用JVM跨平台
不同的平台有特定的JVM ,由JVM将Class文件转换成对应平台的二进制文件,才实现了平台无关性
实际上,JVM不仅被Java语言所使用,还有如Scala、Jython等语言的编译过程也使用JVM
其实JVM和Java无关
JVM vs JDK vs JRE
JVM
java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在
JRE
JRE 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。但是,它不能用于创建新程序
JDK
jDK 是 Java Development Kit 缩写,它是功能齐全的 Java SDK。它拥有 JRE 所拥有的一切,还有编译器(javac)和工具(如 javadoc 和 jdb)。它能够创建和编译程序
JVM 命令
jps 查看java进程
jinfo 实时查看和调整jvm配置参数
jinfo -flag MaxHeapSize 11280
-XX:MaxHeapSize=85.....
jstat
查看虚拟机性能统计信息
查看类加载信息
jstat -class 进程号 打印间隔时间 打印次数
如 jstat -class 11280 500 10
打印gc信息
jstat -gc 11280 500 10
jmap
jamp -heap 11280 打印堆内存相关信息
jstack PID
查看线程堆栈信息 --- 便于判断jvm死锁问题
JVM 性能优化指南
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2020-08-30 机器学习基础概述
2018-08-30 ACM Changchun 2015 A. Too Rich
2018-08-30 最大子串和
2018-08-30 memset
2018-08-30 int long long 的范围
2018-08-30 AtCoder Beginner Contest 098 D - Xor Sum 2