关于"a"+"b"共创建了几个对象的问题

2019-02-21
阅读 1 分钟
1.3k
重点是这句0: ldc #2 // String ab,可以发现 从一开始"a"+"b"就是一个整体,这是因为jvm在编译时就去掉其中的加号,直接将其编译成一个相连的结果存入了常量池,而不是等到运行时再去进行相加,所以运行s=="ab"结果为true;结论:String s = "a" + "b";只创建了一个对象,就是ab,存于常量池中。

jvm类加载的过程

2019-01-10
阅读 3 分钟
1.9k
一个类从加载到虚拟机到使用结束从虚拟机卸载包括了加载、验证、准备、解析、初始化、使用、卸载,即为一个类的生命周期 下面来看一下类加载的过程,即加载、验证、准备、解析、初始化5个阶段都做了什么事: 阶段1:加载 {代码...} 通过类的全名获取其二进制字节流; 将字节流代表的静态结构转化为方法区识别的运行时数...

Java虚拟机的内存区域以及各区域主要用途

2018-12-10
阅读 1 分钟
1.4k
jvm在运行Java程序时,会有把内存分成如下几个区域: 区域 线程私有/共享 主要用途 程序计数器 私有 可以看作是当前线程执行的字节码行号指示器,字节码解释器会通过改变程序计数器的值来记录下一条需要执行的字节码命令;分支、循环、跳转、线程恢复都需要依赖程序计数器来完成 虚拟机栈 私有 Java方法执行的内存模型:...