- public class StringDemo {
- public static void main(String[] args){
- String s1 = "abc";
- String s2 = "abc";
- String s3 = new String("abc");
- //字符串创建的时候,有一个字符串常量池,s1创建后,"abc"放入其中。s2创建的时候,"abc"已经存
- //在于字符串常量池中,故引用变量s2直接指向了已经存在的"abc"字符串对象,故s1==s2。
- System.out.println(s1 == s2); //true
- //s1创建后,是在字符串常量池中创建了一个"abc"字符串对象。而s2是在堆内存中创建了另外一
- //个"abc"字符串对象。所以,两个对象不是同一个对象。
- System.out.println(s1 == s3); //false
- //String类复写了Object中的equals方法,建立了String类自己的判断字符串对象是否相同的依据。只
- //比较字符串内容,不比较地址。
- System.out.println(s1.equals(s2)); //true
- }
- }
复制代码
|
|