黑马程序员技术交流社区

标题: String类创建对象问题 [打印本页]

作者: redlake    时间: 2015-4-19 10:51
标题: String类创建对象问题
String s = new String("abc");怎么说这句话说创建了两个对象,一个new一个字符串对象,不是很理解,谁能给我说说。谢谢!

作者: 燕赵之风    时间: 2015-4-19 12:55
你可以理解为在堆内存中开辟了2片空间,因此创建了2个对象。别太钻牛角尖,你要这样,这日子没法过了。
作者: q8387811    时间: 2015-4-19 13:05
String 和其他变量不一样 new了一个“abc"的时候创建了一个对象
然后赋值到变量s里面 重新开辟了块空间 放进去 形成一个新的String

比如 String str = "aaa" + "bbb";  实际上创建了3个对象
所以一般推荐使用Stringbuf    比较节省资源 要使用的时候使用toString就好了
作者: redlake    时间: 2015-4-19 13:42
燕赵之风 发表于 2015-4-19 12:55
你可以理解为在堆内存中开辟了2片空间,因此创建了2个对象。别太钻牛角尖,你要这样,这日子没法过了。 ...

:L能理解我就理解,理解不了我就记住,嘿嘿
作者: redlake    时间: 2015-4-19 13:45
q8387811 发表于 2015-4-19 13:05
String 和其他变量不一样 new了一个“abc"的时候创建了一个对象
然后赋值到变量s里面 重新开辟了块空间 放 ...

很详细,谢谢你的回答!
作者: q8387811    时间: 2015-4-19 15:58
redlake 发表于 2015-4-19 13:45
很详细,谢谢你的回答!

不客气 , 共勉!~~~




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