Java JVM常用工具

JVM工具 记录了“堆内存使用情况”、“线程”、“类”、“CPU使用情况”共四个资源的实时情况;并且在时间范围可以选择从1分钟到1年的显示情况。 阅读详情

1)JDK内置工具使用

1.1)jps(Java Virtual Machine Process Status Tool)

查看所有的jvm进程,包括进程ID,进程启动的路径等等。

1.2)jstack(Java Stack Trace)

① 观察jvm中当前所有线程的运行情况和线程当前状态。
② 系统崩溃了?如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
③ 系统hung住了?jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

1.3)jstat(Java Virtual Machine Statistics Monitoring Tool)

① jstat利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对进程的classloader,compiler,gc情况;
②监视VM内存内的各种堆和非堆的大小及其内存使用量,以及加载类的数量。

1.4)jmap(Java Memory Map)

监视进程运行中的jvm物理内存的占用情况,该进程内存内,所有对象的情况,例如产生了哪些对象,对象数量;

1.5)jinfo(Java Configuration Info)

观察进程运行环境参数,包括Java System属性和JVM命令行参数。

2)具体命令使用

2.1)jstat

generalOption:

-help 显示帮助信息。
-version 显示版本信息
-options 显示统计选项列表。

outputOptions:

#参数:
-class:统计类装载器的行为
-compiler:统计HotSpot Just-in-Time编译器的行为
-gc:统计堆各个分区的使用情况
-gccapacity:统计新生区,老年区,permanent区的heap容量情况 
-gccause:统计最后一次gc和当前gc的原因
-gcnew:统计gc时,新生代的情况 
-gcnewcapacity:统计新生代大小和空间
-gcold:统计老年代和永久代的行为
-gcoldcapacity:统计老年代大小 
-gcpermcapacity:统计永久代大小 
-gcutil:统计gc时,heap情况 
-printcompilation:HotSpot编译方法统计

-class:

#每隔1秒监控一次,一共做10次
jstat -class 17970 1000 10
##########################################
[root@lq225 conf]# jstat -class 2058 1000 10
Loaded Bytes Unloaded Bytes Time 
3349.5 0 0.0 1.79
3349.5 0 0.0 1.79
3349.5 0 0.0 1.79
3349.5 0 0.0 1.79
...................................................
######################## 术语分隔符 ########################
#Loaded 类加载数量
#Bytes 加载的大小(k) 
#Unloaded 类卸载的数量 
#Bytes 卸载的大小(k) 
#Time 时间花费在执行类加载和卸载操作

-compiler:

Compiled Failed Invalid Time FailedType FailedMethod
0 0 1.27 0
.....................................................
######################## 术语分隔符 ########################
#Compiled 编译任务的执行次数
#Failed 编译任务的失败次数 
#Invalid 编译任务无效的次数
#Time 编译任务花费的时间
#FailedType 最后一次编译错误的类型
#FailedMethod 最后一次编译错误的类名和方法

 

-gc:

#每隔2秒监控一次,共20次
jstat -gc 2058 2000 20
##############################
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 
8704.0 8704.0 805.5 0.0 69952.0 64174.5 174784.0 2644.5 16384.0 10426.7 2 0.034 0 0.000 0.034
8704.0 8704.0 805.5 0.0 69952.0 64174.5 174784.0 2644.5 16384.0 10426.7 2 0.034 0 0.000 0.034
8704.0 8704.0 805.5 0.0 69952.0 64174.5 174784.0 2644.5 16384.0 10426.7 2 0.034 0 0.000 0.034
.............................................
######################## 术语分隔符 ########################
#S0C 生还者区0 容量(KB)
#S1C 生还者区1 容量(KB)
#S0U 生还者区0 使用量(KB)
#S1U 生还者区1 使用量(KB)
#EC 伊甸园区容量(KB)
#EU 伊甸园区使用量(KB) 
#OC 老年区容量(KB)
#OU 老年区使用量(KB)
#PC 永久区容量(KB) 
#PU 永久区使用量(KB)
#YGC 新生代GC次数

 

-gccapacity:

NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC
131072.0 131072.0 131072.0 13056.0 13056.0 104960.0 393216.0 393216.0 393216.0 393216.0 65536.0 65536.0 65536.0 65536.0 1 0
..........................................................................................................
######################## 术语分隔符 ########################
#NGCMN 最小新生代容量(KB)
#NGCMX 最大新生代容量(KB)
#NGC 当前新生代容量(KB)
#S0C 当前生存者0区容量(KB)
#S1C 当前生存者1区容量(KB)
#OGCMN 老年代最小容量(KB)
#OGCMX 老年代最大容量(KB)
#OGC 当前老年代容量(KB). 
#OC 当前老年代?Current old space capacity (KB). 
#PGCMN 永久区最小容量(KB)
#PGCMX 永久区最大容量(KB)
#PGC 当前永久区容量(KB). 
#PC 当前永久区?Current Permanent space capacity (KB). 
#YGC young GC事件的次数 
#FGC Full GC次数

-gccause:

S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC
0.00 99.84 12.76 0.92 46.23 1 0.016 0 0.000 0.016 unknown GCCause No GC
................................................
######################## 术语分隔符 ########################
#S0 年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
#S1 年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
#E 年轻代中Eden(伊甸园)已使用的占当前容量百分比
#O old代已使用的占当前容量百分比
#P perm代已使用的占当前容量百分比
#YGC 从应用程序启动到采样时年轻代中gc次数
#FGC 从应用程序启动到采样时old代(全gc)gc次数
#FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s)
#GCT 从应用程序启动到采样时gc用的总时间(s)
#LGCC 最后一次GC的原因
#GCC 当前GC的原因

-gcutil:

#每隔1秒监控一次,共10次
jstat -gcutil 2058 1000 10
################################
[root@lq225 conf]# jstat -gcutil 2058 1000 10
S0 S1 E O P YGC YGCT FGC FGCT GCT 
9.25 0.00 96.73 1.51 63.64 2 0.034 0 0.000 0.034
9.25 0.00 96.73 1.51 63.64 2 0.034 0 0.000 0.034
9.25 0.00 96.73 1.51 63.64 2 0.034 0 0.000 0.034
9.25 0.00 96.73 1.51 63.64 2 0.034 0 0.000 0.034

2.2)jmap

#参数
-dump:[live,]format=b,file=<filename> 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件. 
-finalizerinfo 打印正等候回收的对象的信息.
-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况.
-histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量. 
-permstat 打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来. 
-F 强迫.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效. 
-h | -help 打印辅助信息 
-J 传递参数给jmap启动的jvm. 
pid 需要被打印配相信息的java进程id.

-histo :

jmap -histo 2058
############################
num #instances #bytes class name
----------------------------------------------
1: 206 3585312 [I
2: 19621 2791880 <constMethodKlass>
3: 19621 2520048 <methodKlass>
4: 21010 2251616 [C
............................................................

-dump:

#生成的文件可以使用jhat工具进行分析,在OOM(内存溢出)时,分析大对象,非常有用
jmap -dump:live,format=b,file=data.hprof 2058

#通过使用如下参数启动JVM,也可以获取到dump文件:
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=./java_pid<pid>.hprof

#如果在虚拟机中导出的heap信息文件可以拿到WINDOWS上进行分析,可以查找诸如内存方面的问题,可以这么做:
jhat data.hprof 
#执行成功后,访问http://localhost:7000即可查看内存信息。(首先把7000端口打开)

 

2.3)jinfo

#查看java进程的配置信息
jinfo 2058
#####################
Attaching to process ID 2058, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.0-b56
Java System Properties:

java.runtime.name = Java(TM) SE Runtime Environment
project.name = Amoeba-MySQL
java.vm.version = 24.0-b56
sun.boot.library.path = /usr/local/java/jdk1.7/jre/lib/amd64
................................................

# 查看2058的MaxPerm大小可以用
jinfo -flag MaxPermSize 2058
############################
-XX:MaxPermSize=100663296

2.4)jps

#列出系统中所有的java进程
jps
#######################
2306 Bootstrap
3370 Jps 2058 xxxxxxxxx

3)一些术语的中文解释

S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
EC:年轻代中Eden(伊甸园)的容量 (字节)
EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
OC:Old代的容量 (字节)
OU:Old代目前已使用空间 (字节)
PC:Perm(持久代)的容量 (字节)
PU:Perm(持久代)目前已使用空间 (字节)
YGC:从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
FGC:从应用程序启动到采样时old代(全gc)gc次数
FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)
NGCMN:年轻代(young)中初始化(最小)的大小 (字节)
NGCMX:年轻代(young)的最大容量 (字节)
NGC:年轻代(young)中当前的容量 (字节)
OGCMN:old代中初始化(最小)的大小 (字节) 
OGCMX:old代的最大容量 (字节)
OGC:old代当前新生成的容量 (字节)
PGCMN:perm代中初始化(最小)的大小 (字节) 
PGCMX:perm代的最大容量 (字节) 
PGC:perm代当前新生成的容量 (字节)
S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
E:年轻代中Eden(伊甸园)已使用的占当前容量百分比
O:old代已使用的占当前容量百分比
P:perm代已使用的占当前容量百分比
S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)
S1CMX:年轻代中第二个survivor(幸存区)的最大容量 (字节)
ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)
DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)
TT: 持有次数限制
MTT : 最大持有次数限制

4)使用visualvm监控tomcat

修改 catalina.sh,添加下面一行:

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.55.255 
-Dcom.sun.management.jmxremote.port=8086 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false"

#注意点:
#1、用hostname -i 查看是否为127.0.01,如果是,则必须配置-Djava.rmi.server.hostname为本机IP。
#2、检查防火墙(iptables)是否开启,以及是否开放jmxremote.port所指定的端口


 

我终于停止写 JUnit 了!用 JavaParser + GPT-4 自动生成 90% 覆盖率的单元测试 本文介绍了一种基于JavaParser和GPT-4的智能单元测试生成方案。针对开发者在单元测试编写中面临的繁琐、无聊和硬指标等问题,提出通过AST语法树分析代码结构,提取关键信息后生成精准提示词,再调用GPT-4自动生成高质量的单元测试代码。文章详细阐述了技术原理、实现步骤(包括JavaParser解析、上下文感知提示词构建和GPT-4调用),并展示了该方法能自动识别依赖、Mock对象和覆盖边界条件,显著提升测试效率。同时指出了在复杂数据结构、私有方法测试等方面的局限性,最终强调这种技术组合可以解放开发者, 阅读详情

相关推荐

MYSQL、ORACLE、PostgreSQL数据库对象层次及权限管理对比

本文为出于自己扩展、比较、图形化的思维路径自行总结归纳,可能有些细节不太准确,欢迎指正。MySQL、Oracle、PostgreSQL关系型数据库都有管理员用户、用户、权限管理、表函数索引等数据库对象,schema。但在数据库对象隶属层次上有差异和相同的地方。

rachel_2016的博客 1490

Linux ---> 监控JVM工具

为什么80%的码农都做不了架构师?>>> ...

weixin_33725239的博客 704

AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

孟孟单单的博客 7万+

JVM实战所需命令及工具(持续更新)

JVM实战命令及工具

fivecents的博客 1197

基于ESP32的气象雷达站设计与实现

物联网技术通过嵌入式设备实现环境数据的实时采集与可视化,其中ESP32凭借其双核处理器和WiFi/蓝牙功能成为热门选择。本项目利用ESP32结合LVGL图形库,构建了一个低成本气象监测系统,通过OpenWeatherMap API获取全球气象数据并在7英寸触摸屏上动态展示。系统采用三级优化策略处理高分辨率雷达图,包括服务端预处理、硬件加速解码和显示增强,有效解决了内存占用和帧率问题。在物联网设备开发中,类似方案可应用于智能家居、农业监测等场景,特别是需要实时数据可视化的领域。通过SPIFFS存储和zlib压

weixin_42524864的博客 422

Vue项目实战:5分钟搞定高德地图离线部署(附避坑指南)

本文详细介绍了在Vue项目中实现高德地图离线部署的完整方案。针对内网或网络隔离环境,通过获取并改造JSAPI文件、下载组织地图瓦片数据,并集成vue-amap组件,实现地图功能的本地化运行。文中提供了核心代码、避坑指南及性能优化建议,帮助开发者快速构建稳定可靠的离线地图应用。

data3的博客 935

初识JVM

JVM所处的位置 JVM处在JDK最底部的位置。 Java程序都是运行在Java虚拟机上。 虚拟机可以看成是一个软件。 JVM的定义:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统,是物理机的软件实现。 软件又运行在操作系统上面,这就是JVM所处的位置。 JVM内部有哪些组成? 先看一条指令的执行过程 假如执行Java Math.class这条命令,JVM会执行哪些步骤? 首先类装载子系统会将字节码装载到内存区域,然后执行引擎执...

weixin_52972575的博客 603

6 赫斯曼网管软件industrial hivision用户管理

文章目录前言一、打开Industrial HiVision服务器二、在用户管理界面添加策略三、使用可选策略四、接受策略总结 前言 安装 Industrial HiVision 后,所有人都能广泛使用程序。安全起见,请进行相 关配置,对访问权限进行限制。 本文主要介绍用户管理基于某种角色模型。在访问角色中定义角色名称,通过分配访问权限给这些角色分配角色功能。例如,给管理人员自然要分配可用的权限,而观察员尽管可以登录,但没有能够进行更改的权限。Industrial HiVision 提供以下访问角色: 

t98746194的博客 1381

进一步了解JVM

jvm是装在操作系统上的一个运行JAVA的环境,相当于一个软件。操作系统下面是硬件系统。 小知识:字节码文件就是.class文件(进过javac编译过后但未解释为机器码的那一个时刻)。得益于字节码文件的存在,只需要将其他语言转换为相应的字节码文件,就可以在虚拟机上面跑起来。类加载器分为四类:用户自定义的类加载器(user classloader),扩展类加载器(extention classloader),应用程序类加载器(application classloader),根加载器(bootstrap cl

qwer179qwer179的博客 538

IEEE S&P 2026 大模型安全论文整理

本文梳理了 IEEE S&P 2026(第47届 IEEE 安全与隐私研讨会)中与 LLM Safety 相关的论文,涵盖大模型越狱攻击、防御与对齐、隐私保护、RAG 安全、多模态大模型安全、智能体安全、图-LLM 安全、工具链安全及生成式 AI 安全与隐私等方向。

CSPhD-winston的博客 1335

扫地机器人行业 企业篇-产业总部地理分布

中国扫地机器人产业呈现区域集聚特征,广东省以13家企业领跑全国,其中深圳独占9家(如大疆、云鲸智能等),佛山、广州、东莞各有分布。江苏省6家企业主要集中在苏州(科沃斯、追觅科技等)。北京聚集了石头科技、小米等4家品牌。浙江、山东、湖南等地也有代表性企业分布。国际品牌方面,美国iRobot、韩国三星/LG、日本松下等均在各自国家设立总部,而戴森、飞利浦等欧洲品牌则将中国运营中心设在上海或苏州。值得注意的是,部分品牌如由利、宝家丽虽为外资起源,但主要运营实体已落户中国。

智能硬件研发,欢迎交流 362

Java必看面试题——jvm常用工具

jstack、jstat、jmap、jcmd 的使用? jstack 可以查看或导出 java 应用程序中线程堆栈信息 jstack用于生成java虚拟机当前时刻的线程快照 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。 jstac

ycjiang00的博客 411

Python爬虫实战:携程旅游平台数据爬取(酒店+机票+景点),破解加密与反爬(附完整代码)

携程的反爬机制再复杂,核心逻辑都是“识别非真实用户的请求”,而爬虫的核心就是“让请求看起来像真实用户的行为”。本文的方案从登录态处理、参数加密破解、动态数据抓取,到反爬应对,都是围绕“模拟真实”展开:用Playwright模拟真实浏览器登录,用住宅代理模拟真实用户IP,用随机延迟模拟真实用户的操作频率。掌握了这个核心思路,无论平台的反爬如何升级,都能找到应对方法。当然,爬虫技术是一把双刃剑,合理使用才能发挥其价值。如果你的爬虫项目中遇到了携程的反爬问题,不妨按照本文的步骤试试,大概率能解决问题。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2606

Java面试必备:常用工具分析JVM性能指南

JVM性能分析是Java开发者必备的技能之一,良好的性能分析可以帮助我们发现内存泄漏、线程阻塞、CPU过载等问题。本文将介绍我日常工作中常用的JVM性能分析工具,并通过流程图帮助理解这些工具的使用场景和分析过程。

qq_58299462的博客 840

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JVM虚拟机学习目录页

使用Java已经多年,但是对JVM底层还是一直没有系统学习过,现在开始爬这座高山,以此博客记录。 学习源码:https://gitee.com/Coline/JVM JVM虚拟机学习(1)---Jvm内存区域:https://blog.youkuaiyun.com/u011294519/article/details/95937162 JVM虚拟机学习(2)---JVM对...

左撇子帕布 344

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java基础-考察JVM内部结构的常用工具介绍

             Java基础-考察JVM内部结构的常用工具介绍                                     作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。       我们可以通过jvisualvm.exe考察jvm内部结构。而jvisualvm.exe这个程序存放在JDK的安装目录下的bin目录中。当然在JDK的安装目录下的bin目录中还有...

weixin_34380781的博客 82

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

性能测试工具 java ur_JVM的常用工具及使用

一、JavamethodJavaMethod是杭研的哨兵系统nss中可以接入查看类中方法的方法名、调用次数、耗时等的一个有用工具,具体接入方式如下:1. 首先要去op工单上面申请机器接入到哨兵(可以让运维PE帮忙看一下要接入哪个集群);2. 然后要下载 sentry-javaagent-home.zip,地址:http://doc.hz.netease.com/pages/viewpage.act...

weixin_36343353的博客 269

JVM虚拟机详解

不了解JVM的Java程序员无异于蒙上双眼在沼泽地奔跑的犀牛,你永远不知道你会在什么时候会掉进坑里,也永远不会明白为什么会掉进坑里。 那么,今天你是蒙着双眼奔跑的么?

Baldwin_KeepMind 9218

JAVA基础

** JAVA基础(一) 基本概念 1.JAVA语言的特点:简单,面向对象,跨平台,安全,多线程,良好的生态圈。 2.JDK,JRE,JVM (1)JDK(Java Development Kit):Java开发的工具包,用于开发,测试,调试和运行JRE。 (2)JRE(Java Runtime Environment):是Java的运行环境 (3) JVM(Java Virtual Machine),Java虚拟机 JVM类型: HotSpot VM—Oracle公司—JDK默认虚拟机,也是使用最广泛

weixin_49354748的博客 364

java性能调优指令_jvm相关参数及java内存/性能调优常用工具、方法、命令

一、jvm相关参数1、通过 jstat -gc pid interval 查看每次 GC 之后,具体每一个分区的内存使用率变化情况2、通过jcmd pid VM.flags 就可以查看到jvm相关的设置参数3、通过“jmap -heap 进程id”查询出 当前进程的JVM 的配置信息,其中就包括垃圾收集器的设置类型4、查看 & 分析 GC 日志首先,我们需要通过 JVM 参数预先设置 GC...

weixin_33252423的博客 404

JAVA入门

新建 C:\Program Files\Java\jdk1.8\jre\bin 和 C:\Program Files\Java\jdk1.8\bin。配置环境变量 -->添加系统变量JAVA_HOME ( 变量名);变量值:刚才下载的jdk1.8的文件地址。新建 %JAVA_HOME%\bin 和 %JAVA_HOME%jre\bin。【注意】系统没有显示文件后缀名时,点开文件管理器手动打开。JavaEE:企业级开发(Web端,服务器开发…百度搜索jdk8,找到下载地址,下载电脑对应版本。

weixin_62658327的博客 688

JVM故障诊断工具

JVM 自带的一系列常用工具,每个工具都有其独特的功能和用途。在遇到线上问题时,我们可以先使用 jps 查询进程的虚拟机 ID,如果是线程问题可以使用 jstack,如果是内存问题可以使用 jmap 和 jhat,而 jstat 和 jinfo 则可以帮助我们在问题发生前监控内存的使用情况和配置信息。当然,这些工具的基本使用方法还有很多细节,需要通过实践来完全掌握。。

zhzjn的博客 1112

Java基础(一)

Java基础(一) Java语言的特点 Java具有简单、面向对象、跨平台、安全、多线程、良好的生态圈等特点。 Java基本概念 1.JDK:Java Development Kit,Java开发工具包,包含开发,编译,调试,运行功能。 2.JRE:Java Runtime Environment,Java运行环境。 3.JVM:Java Virtual Machine,Java虚拟机。包含HotSpot VM,JRockit,J9 VM,TaobaoJVM等类型,HotSpot是JDK默认虚拟机。 Jav

swarthy000 226

jre jdk jvm的区别_Java中JVM、JRE和JDK三者有什么区别和联系?

https://www.zhihu.com/video/1230604601184604160 任何语言或者软件的运行都需要环境。就像人要生活在空气中,鱼要活在水中,喜阴植物就不能放在阳光下暴晒一样,任何对象个体的存在都离不开其所需要的环境,编程语言亦是一样的。 Java 语言的开发运行,也离不开 Java 语言的运行环境 JRE。没有 JRE 的支持,Java 语言便无法运行。当然,如果还想编译...

weixin_39828956的博客 163

IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK

要想开发Java程序,就需要知道什么是JVM、JRE以及JDK。JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的关系。 1.JVM(Java Virtual Machine,Java虚拟机) Java虚拟机简称JVM,是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域(内存中不同...

weixin_34106122的博客 160

JVM--Java虚拟机

JVM组件,调优,垃圾回收算法,垃圾回收器

likehack的博客 554
上一篇: Java提高篇——equals()与hashCode()方法详解
下一篇: 史上最全1000+道Java面试题:JVM+分布式+算法+锁+MQ+微服务+数据库
奇迹摘星w
博客等级 码龄6年 1844粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值