-
Java 11 默认垃圾回收器竟然不是 G1
疑惑 Java 9之后JVM的默认垃圾回收器就是G1了,但今天在Kubernetes容器Pod中查看时发现用的竟然是SerialGC。 查看命令行参数 可以看到
-
Java 环境变量 JDK_JAVA_OPTIONS 与 JAVA_TOOL_OPTIONS 差别
JDK_JAVA_OPTIONS JDK_JAVA_OPTIONS环境变量仅作用于java命令启用的程序(java -jar example.jar)。 JAVA_TOOL_OPTIONS JAVA
-
Java 查看容器信息的几种方式
注意 只能在Linux下该命令才有效。 命令 Java 11 及之后版本 方法一 jcmd 1 VM.info 输出:截取了最后一段System系统信息的输出,
-
Java 11 在容器中无法获取正确的 CPU 处理器个数
现象 使用ForkJoinPool时,发现线程个数始终是1。 ForkJoinPool.getCommonPoolParallelism() 使用Managem
-
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