StringBuffer a = "";a+="this"
一共创建了几个对象
关于这样的问题怎么做呢
怎么理解呢请各位给我指点迷津

解决方案 »

  1.   

    StringBuffer a = ""; 创建了一个对象,a+="this" 对这个对象进行了修改。
      

  2.   

    啊???????????????StringBuffer,你问错问题了吧?StringBuffer不是String,上面那两行都是错的,根本无法编译。
      

  3.   

    StringBuffer 楼主得好好看看了
      

  4.   

    StringBuffer a = "";  创建了一个对象 
    a+="this"  错误了 不能这样写
    a.append("this")
      

  5.   


    我错了
    StringBuffer a = new StringBuffer();  这才创建了一个对象 
    a+="this"  错误了 不能这样写 
    a.append("this")
      

  6.   

    StringBuffer只能通过append(String str)方法追加字符串.
    而不能用"+"
    而且要创建StringBuffer对象只有new一个实例,而不能像定义String那样直接赋值
      

  7.   

    String a = "";
    a+="this";
    应该是这样的那么这个是创建了几个对象呢
      

  8.   


    两个。 都在常量池里,一个是"",一个是"this".
    a+="this"之后,值是还是"this",指向常量池中的"this", 不会增加新的对象。
      

  9.   

    答:一个老问题了。那就再回答一次吧。String a = ""; 
    a+="this"; 在编译时,编译程序其实是按如下代码来编译的:String s = "";
            s = (new StringBuilder()).append(s).append( "this" ).toString();看上边三个红色的部分,因而是三个对象。
      

  10.   

    哈,果然有玄机,14楼正解。 我误导了。见字节码:0  ldc <String "abc"> [16]
    2  astore_1 [a]
    3  new java.lang.StringBuilder [18]
    6  dup
    7  aload_1 [a]
    8  invokestatic java.lang.String.valueOf(java.lang.Object) : java.lang.String [20]
    11  invokespecial java.lang.StringBuilder(java.lang.String) [26]
    14  ldc <String "this"> [29]
    16  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [30]
    19  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [34]
    22  astore_1 [a]
      

  11.   


    大哥
    new StringBuffer()不是对象么??
      

  12.   

    还是多看看StringBuffer和String的区别吧。什么是类,什么是属性
      

  13.   

    编译时,创建“”和“this”两个对象。
    运行时,创建一个对象。总共3个。
      

  14.   

    StringBuffer现在可以看成是一个工具类,里面提供了你想要的一些对字符串的基本操作
    String可以简单理解成是个复杂数据类型
    当你想声明一个类的实例时必须要初始化变量
    这就是为什么8种基本数据类型也要有自己的对应类了!
    你所需要明白的就是,什么是一个类,类中都可以写什么,什么是类属性,什么是对象属性,什么是类方法,什么是对象方法。
    类方法与对象方法的区别。用最最最简单的话来说你没有OOP思想!
      

  15.   

    答:兄弟,我们只是回答:这两句话中关于String的对象有几个?(三个),若算上StringBuffer,(按这种说法,那就多了去了),因为还有JVM启动运行时所创建的至少有几十个对象吧。。这些都算吗?
      

  16.   

    看样子 以后  该 研究研究 think in java 了