黑马程序员技术交流社区

标题: 小弟新手 [打印本页]

作者: 路国强    时间: 2013-12-13 09:48
标题: 小弟新手
创建string对象时,使用string s=new string (“abc”)和string s=“abc”语句有什么区别?存储的时候都是在堆内存中开辟出一个空间存储吗?
作者: 狼王    时间: 2013-12-13 10:02
前一个是在堆内存中开辟一个存储空间,后一个存储在字符串常量池中
作者: zzkang0206    时间: 2013-12-13 10:16
关键字new就是在堆中开辟个string空间存储"abc",用完后被垃圾回收机制收回;后者在栈中开辟个临时空间string空间存储"abc",用完后自动释放。

以上的情况是正确书写代码的情况,吾观你的代码,好像双引号是中文,运行时会报错的,所以也不会在堆开辟空间,也不会在栈中开辟空间。小细节,多注意。

作者: 路国强    时间: 2013-12-13 10:23
zzkang0206 发表于 2013-12-13 10:16
关键字new就是在堆中开辟个string空间存储"abc",用完后被垃圾回收机制收回;后者在栈中开辟个临时空间strin ...

谢谢。我会多多注意细节的。
作者: 路国强    时间: 2013-12-13 10:24
狼王 发表于 2013-12-13 10:02
前一个是在堆内存中开辟一个存储空间,后一个存储在字符串常量池中

谢谢。明白了




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