老师的意思是 不是1个对象么?作者: 沈样 时间: 2012-1-19 19:21
一般是new才会产生对象,String这个字符串="XXX"的话,他们在字符串池中取,对象应该是jvm自动开辟,如果String没有new产生的就永远只有一个,如果错了请指教 作者: 黄秋 时间: 2012-1-21 23:32
既然老师说“继续讨论”,我也来说两句。应是一个对象。
String str = "yes":JAVA首先在字符串池中查找是否已经存在了值为"yes"的这么一个对象,它的判断依据是String类equals(Object obj)方法的返回值。如果有,则不再创建新的对象,直接返回已存在对象的引用;如果没有,则先创建这个对象,然后把它加入到字符串池中,再将它的引用返回。
如果有“new”语句,则创建一对象到堆中,字符串池是保存在栈上。这里无“new”语句,str == "no" 为false,下面的语句不会执行,故只产生一个对象。(如果这三语句前面有语句产生"yes"在字符串池,则一对象也不会产生)。作者: 荣凯旋 时间: 2012-1-22 15:15
6楼7楼正解作者: 李杨 时间: 2012-1-31 02:51
public String()
Initializes a newly created String object so that it represents an empty character sequence. Note that use of this constructor is unnecessary since Strings are immutable.
String
public String(String original)
Initializes a newly created String object so that it represents the same sequence of characters as the argument; in other words, the newly created string is a copy of the argument string. Unless an explicit copy of original is needed, use of this constructor is unnecessary since Strings are immutable.