1、举例说明 变量 常量 字面量
1 int a=10;2 float b=1.234f;3 String c="abc";4 final long d=10L;
a,b,c为变量,d为常量 两者都是左值;10,1.234f,"abc",10L都是字面量;
2、常量池:
常量池专门用来用来存放常量的内存区域,常量池分为:静态常量池和运行时常量池;
静态常量池:*.class文件中的常量池,class文件中的常量池不仅仅包含字符串,数值字面量,还包含类、方法的信息,占用class文件绝大部分空间。
运行时常量池:是jvm虚拟机在完成类装载操作后,将class文件中的常量池载入到内存中,并保存在方法区中,我们常说的常量池,就是指方法区中的运行时常量池。
备注:java虚拟机内存分为虚拟机栈、虚拟机堆、本地方法栈、程序计数器、方法区(jdk8中,移除了方法区,转而用Metaspace区域替代)
2.1 字符串常量池
1 String s1 = "Hello";
2 String s2 = "Hello";
3 String s3 = "Hel" + "lo