本帖最后由 棉/mg花/x糖 于 2013-5-22 10:33 编辑
神之梦 发表于 2013-5-22 10:15
技术分和技术完全是两码事,技术分靠逛论坛回答问题,提出技术方面的问题就很容易获得。。。还有很多其他 ...
严格的说,理解为字符串变量更恰当,因为从面向过程设计的角度来说,它和普通变量的定义没啥区别。
这里,我不得不在强调一下,对于引用类型,“==”判断的才是地址,equals()判断的却是内容!!!
尽管str4是引用对象,str1是字符串变量(如你所说),那么equals()则是对他们里面内容进行判断,显然为true。
相反,“==”才是对他们的地址进行判断,显然为false。
但如果“==”两边是基本数据类型,则是对具体值进行判断,而不是地址。
另外,要注意:方法boolean equals()方法仅适用于字符串内容的判断,不适用于基本数据类型的判断。
例如:
int a = 3,b = 5;
System.out.println(a.equals(b)); //会报错,程序通不过
|