关闭

学习java String类

946人阅读 评论(0) 收藏 举报
class A
{
   static String lock1 ="mylock";
  
   String lock11="mylock";
}

 class B
{
    static String lock2=new String("mylock");
    static String lock3="mylock";
   
    String lock22=new String("mylock");
    String lock23="mylock";
}


public class HelloWorld {

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        // TODO 自动生成方法存根
        System.out.println("你好");
       
        String a = "Hello";
        String b = "Hello";
        String c = "HelloHello";
        String d = "Hello" + "Hello";
        String e = "Hell" + "oHello";
        String f = a + b;
        String g = a+"Hello";

        System.out.println("c == d : " + (c == d));  // true
        System.out.println("c == e : " + (c == e));  // true
        System.out.println("c == f : " + (c == f));   // false
        System.out.println("c == g : " + (c == g));   //false
有这样一个规则:
(1) 当 = 的右边全是字符串常量,那么 = 左边的变量(左值)也成为字符串常量。
(2) 当 = 的右边包含字符串变量(或其它变量),那么 = 左边的变量(左值)也成为字符串变量(StringBuffer().append()...的结果)。
原因:
编译器优化,右边全是常量运算,则生成一个常量;字符串常量不同于字符串变量,字符串变量常量存于 类常量池 Class Constant Pool中,对于同一个常量的引用相等。

       System.out.println(A.lock1.equals(B.lock2));   // true : 值的比较
       System.out.println(A.lock1==B.lock2); //false:引用的比较,new出来的String对象的引用!=同值常量的引用
       System.out.println(A.lock1==B.lock3); //true:对于不同的类的Class Constant Pool,可以发生Same String constant reference
      

        A obj_a=new A();
        B obj_b=new B();
        System.out.println(obj_a.lock11==obj_b.lock22);   //false  
        System.out.println(obj_a.lock11==obj_b.lock23);   //true
//原因:同上。对类成员、对象成员同时成立。                  
    }
}

参考:http://forum.javaeye.com/viewtopic.php?t=11649&postdays=0&postorder=asc&start=30
               http://forum.javaeye.com/viewtopic.php?t=12961&postdays=0&postorder=asc&start=0&sid=9505d8ef70ecce0626907531c025b884

http://dreamhead.blogbus.com/logs/2005/05/1189478.html
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1164次
    • 积分:24
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档
    阅读排行
    评论排行