String对象的==和equals

== 比较是否同一引用,即比较地址

equals() 比较包含的内容是否一样

 

需要区分:

一、用new实例化

String a = new String("hello");

String b = new String("hello");

a==b false,因为是不同引用

二、用字符串常量赋值

String a = "hello";

String b = "hello";

a==b true,因为会在栈内存中查找是否已有存放着hello的单元,如有,直接使用;没有,在栈内存中新建一个。所以b和a是对同一对象的引用,地址相同。

 

对于字符数组,比较内容应该用Arrays.equals()

参考原文《浅析String类中“= =”和equals的应用》http://www.doc88.com/p-886680494425.html

posted @ 2012-03-14 20:36  飞咯  阅读(138)  评论(0)    收藏  举报