JVM学习-虚拟机栈局部变量表和常量池
2023-06-13 09:12:13 时间
JVM
学习-虚拟机栈局部变量表和常量池
案例一
public class Demo{
public static void main(String[] args) {
int a = 10000;
int b = 10000;
Integer A = 10000;
Integer B = 10000;
System.out.println(a==b);//true
System.out.println(A==B);//false
}
}
案例二
public class Demo{
public static void main(String[] args) {
int a = 127;
int b = 127;
Integer A = 127;
Integer B = 127;
System.out.println(a==b);//true
System.out.println(A==B);//true
}
}
案例三
public class Demo{
public static void main(String[] args) {
double a = 127d;
double b = 127d;
Double A = 127d;
Double B = 127d;
System.out.println(a==b);//true
System.out.println(A==B);//false
}
}
总结
上面三个案例的执行情况底层原理是什么?先说非包装类型的基本类型变量:int、short、long、byte、
float、doubke、boolean、char,这些基本类型的变量都是存放在虚拟机栈中的局部变量表中的。而其
中8种基本类型的包装类中有6种会存放在常量池种。那就是Byte、Boolean、Short、Integer、Long、
Character。Double和Float暂时没有实现,但这6种类型的取值范围也仅限于-128-127,所以上述三个
案例的结果也能解释清除了。
相关文章
- jvm调优常用工具
- JVM-年轻代、老年代学习
- JVM 学习笔记(3):HotSpot 算法实现的细节
- 记一次 JVM CPU 使用率飙高问题的排查过程
- jvm之类文件详解(四)
- jvm参数学习
- JVM学习笔记——内存结构篇
- JVM学习- - -虚拟机栈详解
- 相信自己,这次一把搞定JVM面试(上篇)
- 【Java 虚拟机原理】栈帧 | 局部变量表 | 操作数栈 | 方法出口 | JVM 指令逐条解析
- 死磕到底JVM,花了5年时间,对加载机制有了不一样的理解
- JVM:并发的可达性分析
- JVM 深入学习:Java 解析 Class 文件过程解析详解编程语言
- 检测 Java 是否运行在64bit 的JVM上的方法详解编程语言
- 深入理解Java之jvm启动流程详解编程语言
- [二]Java虚拟机 jvm内存结构 运行时数据内存 class文件与jvm内存结构的映射 jvm数据类型 虚拟机栈 方法区 堆 含义详解编程语言
- JVM之内存分配与回收策略详解编程语言
- Linux下调整JVM参数的步骤(linux设置jvm参数)
- 使用JVM在Linux系统中执行多线程操作(jvm线程linux)
- Oracle JVM大路在何方(jvm路径 oracle)
- JDK文档Oracle全面解读JVM(jvm文档oracle)
- Oracle控制下的JVM开启新的技术时代(jvm受oracle控制)