JVM
柯南二号
一个喜欢探讨Java后端技术的小白
展开
-
JVM虚拟机:内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)
1.内存区域划分根据我们之前介绍的垃圾收集算法,限定商用虚拟机基本都采用分代收集算法进行垃圾回收。根据对象的生命周期的不同将内存划分为几块,然后根据各块的特点采用最适当的收集算法。大批对象死去、少量对象存活的,使用复制算法,复制成本低;对象存活率高、没有额外空间进行分配担保的,采用标记-清除算法或者标记-整理算法。从上面的图可以看出, JVM区域总体分两类,heap区和非heap区。1.heap区又分为:Eden Space(伊甸园)、Survivor Space(幸存者区)、Old原创 2020-12-06 22:46:28 · 1966 阅读 · 2 评论 -
JDK1.8默认的垃圾回收器
在我们曾经见到的很多书籍或者资料中,代表的都是Parallel Scavenge(新生代) + Serial Old(老年代)。这其实是没有及时更新造成的一个误导。通过官方网站可以得到证实:在 JDK 8 的官网有这样的说法:链接:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/collectors.htmlParallel compaction is enabled by default if the optio原创 2020-12-06 22:04:29 · 2555 阅读 · 0 评论 -
JVM专题整理,三万字分析
JVM专题文章目录JVM专题一、走入JVM1.1 概念1.2 JVM 、JRE、JDK三者之间的关系二、自动内存管理2.1 JVM的内存区域2.1.1 Program Counter程序计数器:线程私有,无内存溢出问题2.1.2 JVM Stack虚拟机栈:线程私有,描述Java方法的执行过程2.1.3 Native Methd Area本地方法区:线程私有2.1.4 Heap 堆:也叫做运行时数据区,线程共享2.1.5 Method Area方法区2.1.6 运行时常量池2.1.7 直接内存2.2 Ho原创 2020-08-11 10:40:00 · 2250 阅读 · 0 评论 -
JConsole连接远程服务器方法
JConsole连接远程服务器方法远程服务器开启服务 T15_FullGC_Problem01是类名java -Djava.rmi.server.hostname=192.168.111.128 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=3214 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authentic原创 2020-08-08 22:42:42 · 905 阅读 · 0 评论 -
JVM之对象的内存布局
JVM之对象的内存布局先来看一道大厂的面试题一、对象的创建过程二、对象在内存中的存储布局2.1、对象头对象头用于存储对象的元数据信息对象头又可以分为两块内容:第一部分用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据的长度在32位和64位的虚拟机中分别位32bit和64bit,官方称它为 Mark Word。对象头的另一部分是类型指针,指向它的类元数据的指针,用于判断对象属于哪个类的实例,另外,如果对像原创 2020-08-06 09:54:07 · 479 阅读 · 2 评论 -
JVM之对象创建以及调用main方法调用其他方法详解
三、方法中new对象同时调用另外一个方法的JVM指令详解package com.zhou.jvm.runtimedataAreainstructionset;/** * @author zhouyanxiang * @create 2020-08-2020/8/6-8:43 */public class TestMethod { public static void main(String[] args) { TestMethod t = new TestMethod原创 2020-08-06 09:52:37 · 586 阅读 · 0 评论 -
Java的i = i++与i=++i的去呗从JVM指令讲解图文并茂,一文必懂
Java的i = i++深入JVM指令讲解 图文并茂 看了必懂先看一段简单的代码package com.zhou.jvm.runtimedataAreainstructionset;/** * @author zhouyanxiang * @create 2020-08-2020/8/5-19:55 */public class TestPlusPlus { public static void main(String[] args) { int i = 8;原创 2020-08-05 21:36:45 · 1154 阅读 · 1 评论 -
JVM指令手册
JVM指令变量到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_ 操作数栈到变量:istore,istore_,lstore,lstore_,fstore,fstore_,dstore,dstor_,astore,astore_ 常数到操作数栈:bipush,sipush,ldc,ldc_w,ldc2_w,aconst_null,iconst_ml,iconst_,lconst_,fconst_,dconst原创 2020-08-05 09:47:54 · 349 阅读 · 0 评论