JVM
文章平均质量分 73
Fire king
变强之前需要的隐忍,隐常人之所羡,忍常人之所避,集千穿百孔之洗礼,于群马蜕化而日行千里,于群鲤脱颖而出一跃成龙;以知识改变命运为宗,木秀于林风必摧之为旨,悄无声息汲取知识是为了更好地厚积薄发从而一击即中。
在校大学生,软件工程专业,写博客是为了更好地掌握知识,同时与千万小白并肩,看齐万千大佬,以铜为镜三省吾身史为鉴明得失致修身养性治国平天下之境。
展开
-
Java程序OOM自动生成.hprof堆文件并使用jvisualvm分析
Java程序OOM自动生成.hprof堆文件并使用jvisualvm分析,简单易懂,欢迎评论区讨论。原创 2024-03-17 10:59:12 · 845 阅读 · 0 评论 -
字符串常量池的深度理解
字符串常量池的深度理解场景1:场景2:场景3:场景4:场景5:场景6:场景1:分析:有字面量1,首先会去字符串常量池中找有没有字符串值为1的字符串对象,无,就会在字符串常量池中创建1个字符串对象,其中HashtableEntry(和字符串常量池中的每个值的对象一一对应)的key为hash值,value存的是字符串对象的地址,即instanceOopDesc地址,此时字符串对象instanceOopDesc并没有值1,它的值1是存在堆中的一个叫typeArrayOopDesc的char数组中;接着new就原创 2021-08-01 16:50:45 · 212 阅读 · 1 评论 -
java常量池详解
0A=10->tag=10->CONSTANT Methodref(方法常量引用)占u1+u2+u2=5字节,两个index均为索引值,第一个index=00 04=4,指向常量#4,查看反编译文件第二个index=00 11=17,指向常量#17,查看反编译文件构造方法,()V无参void返回值综合常量引用CONSTANT Methodref说明执行了 java/lang/Object的无参构造方法。2.09=9->tag=9->CONSTANT F..原创 2021-06-27 22:44:23 · 170 阅读 · 1 评论 -
JVM创建对象时的并发安全问题
JVM创建对象时的并发安全问题CAS加失败重试的原理:TLAB(Thread Local Allocation Buffer):CAS加失败重试的原理:CAS为compare and swap缩写,意为比较并交换问题:为对象分配空间的时候,出现了两个线程抢占同一块内存空间线程1在读取该块内存空间的时候还没有分配给对象,就,然后比较一次以防止预处理过程中有线程(如线程2)抢占了该块空间,如果读到值不为null,即不相等,就再读取一次,如果这时候有值说明空间已被抢占了,就寻找下一块空间,否则,分配此原创 2021-02-10 16:16:04 · 940 阅读 · 0 评论 -
i++与++i在虚拟机层面上的骚操作-每天一个面试小细节
i++与++i在虚拟机层面上的骚操作:很多人都会有这样一个理解误区:认为i++和++i是从虚拟机栈中取出i的初始值执行计算后再入栈,其实不然:i++与++i都仅仅在局部变量表上执行+1操作,也就是说仅仅更新局部变量表。又如int i = 1;i=i++;这段代码在虚拟机的执行过程如下:bpush 1将1入栈,由于i = 1有赋值操作,就会istore_1将栈顶元素,即1从栈中弹出存入局部变量表槽1的位置;接着i++会执行两步操作:1.iload将局部变量表中槽1的位置的值(1)复制到栈顶,2.直接在原创 2021-02-07 11:38:53 · 203 阅读 · 0 评论 -
JVM浅出篇之对象存活算法和GC算法-小白成神之路
对象存活算法和GC算法大揭秘,解析+图解,一目了然,至此不悔!!!原创 2020-08-12 22:27:19 · 159 阅读 · 0 评论 -
推导JVM内存模型存在的必要性
推导JVM内存模型存在的必要性:1. JVM内存模型:2. JVM内存模型推导设计过程:2.1.结构一:2.2.结构二:2.3.结构三:3.担保机制:4.新想法:为什么新生代的eden区:s0:s1=8:1:1,而不是4:3:3(让eden区占比少一点)?5.老年代GC:6.Gc流程图:1. JVM内存模型:2. JVM内存模型推导设计过程:2.1.结构一:每经历一次yong GC或者minor GC存活下来的对象age+=1。当age=15时进入老年区。提高扫描效率:产生矛盾:经历一次yo原创 2020-08-10 18:19:56 · 210 阅读 · 0 评论 -
JVM符号引用暴力理解
忽然对JVM产生兴趣,故而着手研究,搜集各种文件得出的感悟和理解过程,非常适用于小白,由于博主能力有限,敬请谅解,欢迎指正!!!原创 2020-07-08 09:34:55 · 225 阅读 · 0 评论 -
深挖JVM沃土
双亲委派机制:在加载一个类之前先加载其上面的同包同名的类,从当前类所在的应用程序加载器找到根类加载器,根类加载器没有,就往回找,直到找到离根类加载器最近加载器中的类加载进来。...原创 2021-02-02 21:19:04 · 91 阅读 · 0 评论 -
深剖字符串常量池、字符串字面量、字符串对象和引用间关系
JDK1.8API文档描述://案例1: // String str2 = "abcabc";// String str1 = new String("abc") + new String("abc");// String str4 = str1.intern();//案例2: /* 字面量"abc",在字符串常量池中没有"abc"对象,就在字符串常量池中创建"abc"对象, * 同时在堆中new一个"abc"对象,str2指向堆中的那个对象原创 2021-01-03 21:30:49 · 331 阅读 · 0 评论