黑马程序员技术交流社区
标题:
Integer
[打印本页]
作者:
心安勿忘
时间:
2014-1-22 12:18
标题:
Integer
Integer x=new Integer("123");
Integer x=new Integer(123);
问题:这两条语句在内存中是什么样的?
第一句,在栈内存中有个x,x中存放的是Integer对象地址,在堆内存中存放的是Integer对象,
那么堆内存中Integer对象里面存的是123呢?还是存的是字符串123的地址,123存在于方法区的常量池中?
作者:
向阳泪无痕
时间:
2014-1-22 17:08
是的 -128~127 都在常用池中 当然存地址了
作者:
孤独的天奇
时间:
2014-1-22 23:17
integer就是对象啊 当然存的是引用
作者:
dapeng111
时间:
2014-1-23 00:05
Integer x=new Integer("123");
Integer x=new Integer(123);
字符串“123”和整数123在常量池中都会一份存储。这个存储是在JVM在对java源文件完成编译的时候完成的。注意:对于整数要在0~127的范围内才能存在常量池中。
在运行的时候,Integer x=new Integer("123");和Integer x=new Integer(123);都要创建对象。所以会再堆空间里再复制一份123. 对于字符串“123”还有一个调用parseInt(String)的动作,将字符串,转换为整形。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2