虚拟机

 

   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 性能优化指南

 

posted on   cltt  阅读(49)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 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
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示