黑马程序员技术交流社区

标题: String s = new String("hello")和String s = "hello"的区别 [打印本页]

作者: 咖啡苏克    时间: 2014-7-12 22:42
标题: String s = new String("hello")和String s = "hello"的区别
一道面试题,String s = new String("hello")和String s = "hello"有什么区别?

作者: hxwo211314    时间: 2014-7-12 22:44
存放地方的区别:
第一个s是一个对象,它是存放在堆中的。
第二个s是一个字符串常量,它存放在内存的静态存储区。
用法的区别:
第一个是个对象,所以可以用String类中的所有方法,而第二个不是对象,它不可以操作String类中的方法
作者: ╰_〃无法释怀的    时间: 2014-7-12 22:55
第一个是对象,第二个是为String变量赋值
作者: sk120110    时间: 2014-7-12 23:55
大家说得好
作者: flyidea    时间: 2014-7-13 10:47
new string 开辟了两个内存空间,内容重复。而另一种直接赋值就不会,也没有垃圾产生。
作者: 001可望成功    时间: 2014-7-13 10:59
不多解释了,看看这个帖子就知道了
http://bbs.itheima.com/thread-129040-1-1.html




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