JVM
文章平均质量分 52
旋尘
x_x
展开
-
i++,++i的JVM底层实现
i++,++i的底层i++和++i的区别:先执行iload指令还是innc指令假如i=4,s=i++时先执行iload 1,(i在局部变量表索引22的位置),将局部变量表索引22位置的i的值4压入操作数栈然后执行引擎对i执行自增运算(innc 22,1),innc指令是在局部变量slot(槽)上进行运算的,所以局部变量表上的i=5最后执行执行istore 2(s在局部变量表索引2的位置),所以s=4.假如i=4,s=++i时首先执行引擎对i执行自增运算(innc 22,1),innc原创 2022-03-22 11:18:29 · 528 阅读 · 0 评论 -
String与StringTable串池机制,string.concat()与intern()方法底层,intern()方法jdk1.6,1.8区别
String字符串concat方法拼接String x="a";String y="b"; x.concat(y)concat源码中容易得出,concat方法通过创建一个长度为两字符串长度之和的byte数组来存放两字符串,然后将两个字符串依次放入数组中,实现了字符串的拼接。至于为什么使用byte数组,上面讲过,String类型底层使用byte数组存储char数组,因此concat使用byte数组来存储字符串,如果用其他类型的数组就要进行类型转换。注意:concat方法并不会对原对象进行原创 2022-03-22 11:11:53 · 630 阅读 · 0 评论 -
JVM、JRE、JDK区别详解
JVM、JRE、JDK区别 JDK Java Virtual Machine(Java虚拟机)-java程序的运行环境,JVM是一种用于计算设备的规范(所以可以有很多种JVM,甚至可以自己开发JVM),是虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加原创 2022-03-22 11:03:21 · 1134 阅读 · 0 评论