黑马程序员技术交流社区

标题: 一个面试题 [打印本页]

作者: zj2427902512    时间: 2015-9-30 22:16
标题: 一个面试题
String s = new String("xyz");创建了几个String Object?二者之间有什么区别?
作者: 召唤吧Bymax    时间: 2015-9-30 22:23
话说不是两个么
一个是在堆内存中  一个在常量池中   
不知道对不对
作者: toypaoa    时间: 2015-9-30 23:30
2个,堆内存一个常量池一个
作者: 且听风_R0pZK    时间: 2015-9-30 23:43
创建了两个对象,一个在正常的堆内存中,另外一个则存在于方法区的常量池中
作者: thriver2010    时间: 2015-9-30 23:48
学习,学习
作者: 残影    时间: 2015-10-1 00:01
2个。。。。一个在常量池,一个在堆中
作者: 381890216    时间: 2015-10-1 00:07
且听风_R0pZK 发表于 2015-9-30 23:43
创建了两个对象,一个在正常的堆内存中,另外一个则存在于方法区的常量池中 ...

学习一下:String s = new String("xyz")

是不是堆内存的是new String();
常量池里的是“xyz”

理解的对吗
作者: 阿加斯冬季    时间: 2015-10-1 00:22
哇塞 堆内存我懂   常量池是什么?要学的还有很多啊

作者: charryxiaocai    时间: 2015-10-1 00:46
一个或两个,如果常量池内已经存在了该常量则就只在堆中创建一个。而没有则堆和常量池中都创建

作者: tianweidong    时间: 2015-10-1 09:19
支持楼上‘’‘’‘’‘’‘
作者: Synaric    时间: 2015-10-1 09:24
1or2个正解
作者: syusouki    时间: 2015-10-1 10:03
一个是s的对象在堆内存中  一个是"xyz"的对象在常量池中   




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