-
JVM 常用参数
通用参数 -version -help java -showverison X 参数 -Xint:解释执行 -Xcomp:第一次使用就编译成本地代码 -Xmix
-
JVM:运行时方法区之常量池
Java 代码 public class StringTableDemo { public static void main(String[] arg
-
JVM:运行时数据区之虚拟机栈
基本内容 Java Virtual Machine Stack、Java栈、虚拟机栈。 每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧Stack
-
JVM:浅堆、深堆和保留集
浅堆 Shallow Heap。 浅堆是指一个对象所消耗的内存。 在32位系统中,一个对象引用会占据4个字节,一个int类型会占据4个字节,long型变量会占据
-
JVM:开启标量替换后仍有部分对象在堆中生成
标量替换 将普通对象中的字段拆解为基本数据类型和字符串,并且直接讲这些字段存放在线程栈中的局部变量表中,使得不用在堆中开辟空间初始化对象。避免了在堆中竞争锁去申
-
JVM:垃圾标记阶段算法之可达性分析法
可达性分析法 也叫根搜索算法、追踪性垃圾收集。 相对于引用计数算法而言,可达性分析算法不仅具备实现简单和执行高效等特点,更重要的是该算法可以有效地解决在引用计算
-
JVM:垃圾标记阶段算法之引用计数法
垃圾标记阶段 对象存活判断。 引用计数法 Reference Counting。 对每个对象保存一个整型的引用计数器属性。用于记录对象被引用的情况。 对于一个对
-
JVM:运行时数据区之程序计数器
名称 程序计数器、PC寄存器、Program Counter Register。 作用 用来存储指向下一条指令的地址,也即:将要执行的指令代码。由执行引擎取下一
-
JVM:类加载器
说明 基于Java11。 系统类加载器 ClassLoader systemClassLoader = ClassLoader.getSystemClassLo
-
JVM:类的加载过程
加载 Loading 通过一个类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 在内存中生成一个代表这个类
-
Java jcmd 命令动态修改 JVM 启动参数
说明 文中的12345为进程的pid。 列出所有标志 Linux jcmd 12345 VM.flags -all | grep manageable Wind
-
Java G1 垃圾收集器开启字符串去重
字符串去重 不是对字符串常量池进行去重,因为StringTable本来就是不重复的。 这里的去重,去的是String对象中的char[]或byte[](不同JD
-
JVM 字符串常量池中的垃圾回收
字符串常量池 字符串常量池也存在垃圾回收,当Full GC时,垃圾收集器同样会收集常量池中的String常量字符串。 示例 添加-XX:+PrintString
-
Java jcmd 命令查看 JVM 各种信息
说明 12345为假定的pid。 运行中的参数 jcmd 12345 VM.flags 启动时的参数 jcmd 12345 VM.command_line 使用
-
Java jcmd 命令查看堆中实例
说明 文中的12345均为运行时的Java进程id。 查看堆内存信息 jcmd 12345 GC.heap_info 输出: 12345: garbage-f
-
Java jcmd 代替 jmap 导出堆内存快照
说明 jcmd <pid> GC.heap_dump dump.hprof命令等价于jmap -dump:live,format=b,file=du
-
Java jcmd 命令打印线程堆栈
说明 jcmd的Thread.print与jstack命令功能一致。 查看帮助 jcmd 12345 help Thread.print 输出: 12345:
-
Java jstat 命令查看 JVM 垃圾回收情况
jstat 选项 使用jstat -options查看支持的选项 class:类加载统计(Displays statistics about the beha
-
面试题:Java 内存结构与内存模型
注意 内存结构与内存模型常常混淆 Java 内存结构 又称JVM内存结构 The Structure of the Java Virtual Machine
-
Java jar 包启动时指定 JVM 时区
添加启动参数 java -jar -Duser.timezone=GMT+08 xxx.jar