黑马程序员技术交流社区

标题: Java中常量池都有哪些啊? [打印本页]

作者: 吃饭工作睡觉    时间: 2015-11-4 10:40
标题: Java中常量池都有哪些啊?
在学习字符串的时候,有一个字符串常量池?有没有其他的常量池啊?

作者: 744919632    时间: 2015-11-4 10:40
http://qurtyy.blog.163.com/blog/static/574436812012212148291/

这个博客说得很清楚,也看得懂,希望能帮到你。
作者: 黑马,你的骄傲    时间: 2015-11-4 18:48
可以说,只要final 修饰的 成员 都是在 常量池  中
作者: 北极的男娃    时间: 2015-11-4 19:19
楼上说的对  String也是被final修饰的
作者: redsifei    时间: 2015-11-4 20:42
Integer 有一个byte常量池.
这个面试貌似面试也经常问
作者: 菊花爆满山    时间: 2015-11-4 21:32
这个问题有点复杂 百度有很多帖子
作者: 吃饭工作睡觉    时间: 2015-11-5 08:48
黑马,你的骄傲 发表于 2015-11-4 18:48
可以说,只要final 修饰的 成员 都是在 常量池  中

因为8中基本类型都是final修饰的,那就都在常量池中么?
作者: 吃饭工作睡觉    时间: 2015-11-5 08:50
redsifei 发表于 2015-11-4 20:42
Integer 有一个byte常量池.
这个面试貌似面试也经常问

除了这个没有其他了?
作者: keaitao0321    时间: 2015-11-5 12:04
是不是所有被定义为常量的都放在常量池
作者: 吃饭工作睡觉    时间: 2015-11-5 12:40
keaitao0321 发表于 2015-11-5 12:04
是不是所有被定义为常量的都放在常量池

我也在想这个问题呢。
作者: dengwenjing58    时间: 2015-11-5 22:40
不仅仅是字符串  像 Integer Char Byte这些包装了,也是采用了常量池技术
作者: 吃饭工作睡觉    时间: 2015-11-6 08:49
dengwenjing58 发表于 2015-11-5 22:40
不仅仅是字符串  像 Integer Char Byte这些包装了,也是采用了常量池技术
  1. public class Test {

  2.         public static void main(String[] args) {
  3.                 Integer i3 = 333;
  4.                 Integer i4 = 333;
  5.                 System.out.println(i3 == i4);
  6.         }

  7. }
复制代码


这里面都会返回false。为什么?
作者: 吃饭工作睡觉    时间: 2015-11-6 09:51
744919632 发表于 2015-11-6 09:05
http://qurtyy.blog.163.com/blog/static/574436812012212148291/

这个博客说得很清楚,也看得懂,希望能 ...

这个答案确实是正解!谢谢!
作者: newbee    时间: 2015-11-6 13:00
不是所有的定义为常量的都放在常量池。应该是 编译时期就能确定 大小的常量
作者: 744919632    时间: 2015-11-7 15:22
吃饭工作睡觉 发表于 2015-11-6 09:51
这个答案确实是正解!谢谢!

互相学习。
作者: 吃饭工作睡觉    时间: 2015-11-8 20:54
newbee 发表于 2015-11-6 13:00
不是所有的定义为常量的都放在常量池。应该是 编译时期就能确定 大小的常量 ...

对,谢谢!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2