JVM
文章平均质量分 59
我是一个菜鸡1
这个作者很懒,什么都没留下…
展开
-
try catch中finally和return之间的理解
先上代码,你猜猜会返回什么public class Test { private int i = 0; public int anInt(){ try{ return i; }finally{ i = 520; } }}首先先不看结果,先看字节码上字节码0 aload_0 1 getfield #7 <byteCode/throwComp/Test.i : I>原创 2022-05-09 21:32:55 · 84 阅读 · 0 评论 -
Integer的装箱和拆箱过程
装箱:int->Integer拆箱:Integer->int装箱在使用 Integer i = 10;的时候会调用 java.lang.Integer.valueOf的方法对其进行装箱操作。注意这里需要装箱的数字大小范围为-128-127之间,如果不在这里面的区间,会直接进行new一个拆箱例如Integer i = 10;int a = i; 上述在对a进行转化的时候会把i进行拆箱操作,调用java.lang.Integer.intValue的方法对其进行拆箱操作,然后再赋值给原创 2022-05-03 00:40:04 · 1125 阅读 · 0 评论 -
JVM full GC和Major GC的区别
Major GC调用情况用于回收老年代执行major GC之前一定会执行一次Minor GC当老年代空间不足的时候就会执行Major GCMajor GC比Minor GC慢上10倍如果Major GC以后老年代空间还是不够用,就报OOMFull GC调用情况:调用System.gc()的时候会执行大对象转入方法区空间不足老年代的连续空间小于eden区中的对象的大小,如果还是小于,那么就查看是否开启了空间担保机制,如果没有开启,就直接进行full gc,如果开启了,就查看老年代最大原创 2022-05-01 23:25:23 · 5143 阅读 · 1 评论 -
JVM的引用之四大引用介绍
java四大引用强引用(StrongReference):程序代码中普遍存在的赋值,如Object obj = new Object();无论任何情况下,只要强引用还存在,垃圾收集器就永远不会回收掉被引用对象软引用(SoftReference):定义SoftReference softReference = new SoftReference(所要引用的对象),该软引用是在java.lang.ref下的,如果要成功回收软引用,必须要进行第二次回收,就是内存要满的时候就会回收软引用package E原创 2022-05-01 02:11:33 · 139 阅读 · 0 评论 -
JVM之逃逸分析之标量替换
标量替换首先要明确数据分为聚合量和标量,标量是不可在继续分的,而聚合量是能够继续分的。如果逃逸分析证明一个对象不会被外访问或者引用,并且这个对象是可以分的,那么创建的时候就不会创建这个对象了,而改为使用若干个标量来替换它,这样是为了拆开以后便于标量可以在各个栈上进行分配了。进行逃逸分析//参数如下 -server -Xms100m -Xmx100m -XX:+UseParallelGC -XX:-DoEscapeAnalysis -XX:+UseTLAB -XX:+EliminateAllocatio原创 2022-05-01 01:53:26 · 592 阅读 · 2 评论 -
JVM之使用JHSDB的执行操作分析
public class JHSDBTest { static class Test{ static ObjectHolder staticObj = new ObjectHolder(); ObjectHolder instanceObj = new ObjectHolder(); void foo(){ ObjectHolder localObj = new ObjectHolder(); Syste原创 2022-04-29 00:40:10 · 11272 阅读 · 0 评论 -
JVM之ZGC的回收介绍
在介绍ZGC之前首先要介绍ZGC所使用的一些技术和内存方式染色指针指将一些少量信息存储在指针上的技术,为什么他可以存储呢?他使用linux下64位指针其中的46位指针(18位不能用来寻址)其中的4位来存放四个标志信息通过这些标记能够进行看到引用对象的三色标记状态,是否进入了重分配集,是否只有通过Finalize()方法才能够进行访问?使用染色指针的优势可以是的Region中的存活对象被移走了以后能够直接回收该Region,供给下一个分配对象进行使用并且能够大幅度减少垃圾收集过程中内存屏障的使用原创 2022-04-28 00:32:42 · 751 阅读 · 0 评论 -
JVM垃圾回收器G1的回收过程
回收使用的数据结构Remembered Set记忆集CardTable卡表Remembered Set(以下简称RSet)RSet是每一个Region中为了提高垃圾回收扫描的效率所分配的一个区。该区主要记录其他Region引用该Region的信息,然后通过该RSet中的信息找到其他引用该Region的域,这样子的话就可以在回收的时候不用全部扫描整个堆了因为如果没有使用该RSet的话,要知道谁引用了该Region,只能通过扫描所有的堆,然后才能得出,这样的执行效率太低,因此使用了RSet你可以极大地增原创 2022-04-26 00:37:09 · 2245 阅读 · 0 评论 -
JVM之G1垃圾回收器入门
G1垃圾回收器背景因为我们现在开发使用的程序业务越来越庞大,复杂,传统的GC回收器无法满足现代用户交互的需求,G1回收器横空出世,为了适应多CPU和处理器的数量而设计。使用场景面向服务端应用,能够处理大内存,多处理器的机器。描述该回收器支持并发和并行。并行:垃圾线程同时进行回收工作并发:和用户线程之间在短时间内进行切换,共同执行主要使用“标记-压缩算法”,(不会产生内存碎片),首先提出了引用Region为基本单位的的概念,就相当于把内存分为一定数量的Region(域),每一个Region都原创 2022-04-24 21:40:53 · 1426 阅读 · 0 评论 -
【无标题】
JVM之CMS垃圾回收器原创 2022-04-23 21:37:04 · 332 阅读 · 0 评论