JVM
文章平均质量分 88
VM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
roc_lpy
不争,不露,不显
展开
-
【JVM】JVM监视与调试
调试命令jps显示指定系统内所有的HotSpot虚拟机进程。命令格式:jps [options] [hostid]命令参数:(可不写)[options]:操作格式,-l 输出主类全名或jar路径-q 只输出LVMID-m 输出jvm启动时传递给main()的参数-v 输出jvm启动时显示指定的JVM参数jstat监视虚拟机运行时状态信息(类装载、内存、垃圾收集、JIT编译等)。命令格式:jstat [option] LVMID [interv...原创 2021-04-23 15:41:40 · 153 阅读 · 0 评论 -
【JVM】JVM优化参数及日志
JVM参数含义堆设置-Xms:初始堆大小-Xmx:最大堆大小-XX:NewSize=n:设置年轻代大小-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。Eden:S0:S1=8:1:1(默认值为8)-XX:MaxPermSize=n:设置持久代大小-XX:InitialHea原创 2021-04-23 15:37:36 · 183 阅读 · 0 评论 -
【JVM】垃圾回收(GC)
GC全拼Garbage Collection对象存活分析Java虚拟机总共分为五个区域,其中三个是线程私有:程序计数器,虚拟机栈,本地方法栈,两个是线程共享:堆,方法区。线程私有的区域等到线程结束时(栈帧出栈时)会自动被释放,空间比较容易清理。而线程共享的java堆和方法区中的空间较大而且没有线程的回收容易产生很多垃圾信息,GC垃圾回收真正关心的就是这部分。Java堆和方法区主要存放各种类型的对象(方法区中也存储一些静态变量和全局常量等信息),那么我们在使用GC对其进行回收的时候首先要考虑的就是原创 2021-04-22 16:05:28 · 141 阅读 · 0 评论 -
【JVM】内存结构
程序计数器(Program Counter Register)程序计数器(Program Counter Register)又称PC寄存器,是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机概念模型里(概念模型,各种虚拟机可能会通过一些更高效的方式实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令:分支、跳转、循环、异常处理、线程恢复等基础操作都会依赖这个计数器来完成。每个线程都有独立的程序计数器,用来在线程切换后能恢复到正确的执..原创 2021-04-20 17:35:24 · 93 阅读 · 0 评论 -
【JVM】类的加载机制
什么是类的加载类的加载指的是将类的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆内创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载器并不需要等到某个类被“首次主动加载”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载过程中遇到了.class 文件缺失或者存在错误,类加载器必须在程序首次主动使用该类时才报告错误(LinkageError错误),如果这个类一直没有被程序主动使用,那么类加载器就不会报告错误。加原创 2021-04-16 17:30:07 · 132 阅读 · 1 评论