String中的+号,会被转换为StringBuffer的append()方法来操作的。

解决方案 »

  1.   

    JAVA中没有运算符重载吧
    STRING不是基本类型
      

  2.   

    回复人: beakham(我不是贝克汉姆) ( ) 信誉:88  2004-11-28 01:00:00  得分: 0  
     
    JAVA中没有运算符重载吧
    STRING不是基本类型这句话有些奇怪,运算符重载不就是用于类的吗?基本型别重载做什么?HeXuZhOnG(BT,思维中的战斗机) +号用append()也许可以解释,但是等于号呢?不要说是clone()还有== 难道是equals()
      

  3.   

    ==比较是不是同一个对象,equals()就要你看看源代码中是怎么实现的了
      

  4.   

    java中确实没有云运算符重载,唯一例外是String里面的=和+
      

  5.   

    java里是没有运算符重载的,String+是StringBuffer的append()方法来实现的,如:
    String str = new String("abc");
    编译时等效于
    String str = new StringBuffer().append("a").append("b").append("c").toString();
      

  6.   

    String str = "a"+"b"+"c";
    的值等于
    String str = new String("abc");
    的值。
      

  7.   


    Java中不支持运算符重载。+,-,*,/已经可以足够完成常用的操作了,如果什么时候感觉用起来不习惯,大概是没有找到正确的方法哦:)
      

  8.   

    JAVA中只有"="和"+"两个运算符重载!
      

  9.   

    从语言一级来看,java不支持运算符重载。String类的"=","+","+=",看似运算符重载,实际不是,只是在java编译器里做了一点手脚。
    java编译器对String的运算符做了特殊处理。比如:
    String s = "s1";
    s += "s2";
    编译器转换成了:
    String s = "s1";
    s = (new StringBuilder()).append(s).append("s2").toString();如果你有Java Decompiler(如jad),你可以将一个字符串操作的程序反编译来看看。奥妙就在其中。