java基本类型都存在常量池吗

 我来答
追忆小土豆
2017-08-09 · TA获得超过7739个赞
知道大有可为答主
回答量:4890
采纳率:0%
帮助的人:1505万
展开全部
1.在Java中你可以这样理解:所有的变量,包括基本类型和引用类型,它们的变量都是存放在栈中,栈中的每个变量都包含类型、名称、值这些内容,只不过基本类型变量的值为一个具体的值,而引用类型的变量的值为对象在堆中的地址。

2.常量池的存在是为了避免某个常量值被反复实例化,似乎主要用于字符串常量。例如:声明String a = "abc",『"abc"』是一个字符串常量,在声明过程中,会首先检查常量池中有没有『“abc”』这样的对象,如果没有则进行实例化并存入常量池,然后将引用(或者说句柄、地址)赋值给a;若在声明String b = “abc”,则b引用的是常量池中已存在的对象。上述情况下判断 a==b 的值为true,因为它们引用的是同一个对象。倘若声明String a = new String("abc"); String b = new String("abc"); ,则判断 a==b 的值为false,因为分别为a和b创建了新对象。

3.对于基本类型应该不会用到常量池,因为基本类型的值就存在栈中,在Java中对基本类型变量的运算、判断以及赋值都是对值的操作,没有对地址操作,例如:int a = 1; int b = 2; a = b; 这是将b的值赋给a,而不是a引用b;

4.关于常量池的生命周期我没验证过,不好说
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式