02 2021 档案
摘要:前言 Java 的性能调优,主要就是为了防止出现out of memory(oom)。Java出现oom就会直接导致程序停止运行。 调优 模拟元空间oom的情况 import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodI
阅读全文
摘要:前言 之前的学习也是为了让我们更好的理解GC,GC是我们学习Jvm的核心,因为我们后面的优化,为什么会出现oom,怎么调整堆空间的大小等等。 GC算法 第一种标记算法:引用计数法 在对象中添加一个属性用于标记对象被引用的次数,每多一个其他对象引用,计数+1,当引用失效时,计数-1,如果计数=0,表示
阅读全文
摘要:前言 在并发开发的过程中,我们都知道需要保证共享资源的的读写有序。加锁是我们比较常用的一种方式。ThreadLock则是从另外一个角度出发,每一个线程都独立资源,这样同样可以解决资源的问题。这样讲可能不是很好理解,下面我们通过案例来说明这个情况。 案例 我们在使用日期格式转换的时候,会出现日期转换出
阅读全文
摘要:前言 Java 程序调优是一个程序员必备的技能。 对象内存结构 对象头: Mark Word :32bit机 4B;64bit机 8B 是固定的。 类型指针:klass pointer,引用类型在方法区的地址。 开启指针压缩占4字节,不开启占8个字节。 数组长度:对象不是数组占0字节,对象是数组占4
阅读全文
摘要:前言 通过JDK原理来重新理解一遍Java内存模型,通过其他方式学习到,总会有错误或者遗漏的情况。 内存模型 Java常常被提到的4个概念: class文件:硬盘上的.class文件 class content:类加载器将.clas文件加载入内存,存储字节码文件数据的那块内存区域 Class对象:C
阅读全文