黑马程序员技术交流社区
标题:
求助一道题
[打印本页]
作者:
liuzegang
时间:
2016-2-6 19:55
标题:
求助一道题
String s = new String(“hello”)和String s = “hello”;的区别?
作者:
xuecmg
时间:
2016-2-18 18:29
前者要在堆内存中创建对象(并会检查此时的常量池中有无hello,若没有,会先在常量池中创建对象并赋值hello),然后再把常量池中的hello复制给堆内存中的对象,最后再把堆内存中对象的地址值赋给s
后者直接在常量池中创建对象并赋值hello,然后把常量池中对象的地址值赋给s
所以这两个s虽然结果都是hello,但过程并不是一回事。
作者:
BlackFlag
时间:
2016-2-19 10:51
xuecmg说的很对
作者:
w417678197
时间:
2016-2-19 11:56
二楼正解!!
作者:
liuzegang
时间:
2016-2-22 23:41
xuecmg 发表于 2016-2-18 18:29
前者要在堆内存中创建对象(并会检查此时的常量池中有无hello,若没有,会先在常量池中创建对象并赋值hello ...
谢谢,受教了
作者:
is陈小贱di
时间:
2016-2-22 23:48
前一个是有两个对象,一个是字符串常量池里有一个对象,另一个是在堆里;String s ="hello"就是定义一个常量
作者:
沫流
时间:
2016-2-23 22:36
谢谢分享,受教了
作者:
qianxin
时间:
2016-2-24 00:00
xuecmg 发表于 2016-2-18 18:29
前者要在堆内存中创建对象(并会检查此时的常量池中有无hello,若没有,会先在常量池中创建对象并赋值hello ...
public String(String original)初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。由于 String 是不可变的,所以无需使用此构造方法, 用string的构造方法,创建对象,并传入hello字符串 ,string 是= “hello”是自动调用tostring方法吗
作者:
Lily007
时间:
2016-3-2 10:19
学习了。谢谢分享!!
作者:
执剑人
时间:
2016-3-5 11:42
一楼正解啊!
作者:
guyulei
时间:
2016-3-5 17:35
学习啦~
作者:
elessarcheung
时间:
2016-3-12 08:44
二楼正解
作者:
doglovely
时间:
2016-3-13 14:09
正解。。。。。。。。。。。
作者:
843718696
时间:
2016-3-13 15:07
正解。。。。。。。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2