1 java中的隐藏是什么概念?
                2 String 和 StringBuilder 有什么区别?
              具体的麻烦了各位!

解决方案 »

  1.   

    http://blog.csdn.net/yaganblw/archive/2011/06/09/6533691.aspx
      

  2.   

    你先去google吧,或者看书吧,不要这么问!
      

  3.   


    /**
     * 2011-6-30 10:35:34
     * @author Administrator
     */
    public class NewClass {
        public NewClass(){
            String str="abcdefg";
            String str2=str.replace("ab", "12");
            System.out.println(str);
            System.out.println(str2);
            //上面两个输出,是说明,对于String,字符串的对象的内容是不能被修改的,只能生成新的对象
            //str.replace这个方法并没有修改str所引用的对象的内容,而是生成了一个新的对象并返回其引用
            //其实如果你观察String的源代码可以发现,它的内容的核心就是一个数组。然而,由于其内容不能改变
            //而是只能生成新的内容,如果要多次修改字符串的话,效率将非常低下。比如进行N次追加操作
            StringBuffer sb=new StringBuffer("abcdefg");
            sb.append("1234");
            //而StrinbBuffer的对象的内容,是可以被修改的
            System.out.println(sb.toString());
        }
        public static void main(String args[]){
            new NewClass();
        }
    }
      

  4.   

    http://yinaje.blog.163.com/blog/static/14334020067261028310/http://blog.csdn.net/yaganblw/archive/2011/06/09/6533691.aspx
      

  5.   

    http://www.cnblogs.com/beyondwcm/archive/2007/11/08/953454.html
      

  6.   

    简单的说吧,String产生的是一个常量,他的内容一经生成,就无法改变,而StringBuffer 而是一个变量,可以自由修改
      

  7.   

    String 定义的是String 类的实例化对象,一旦对象赋值成功是不可变的,如果是这样的:String str="123"; str+="456"; System.out.println(str);输出的是123456,表面上看  str是可变的,但是输出的str实际上已经不是以前的str了,他是把"123"和"456"连接成一个新的对象,然后赋值给了str。也就是说String类型的对象如果进行字符串连接的话,会重新创建对象的。而StringBuilder 定义的字符串是可变长度的。StringBuilder 定义的字符串如果进行字符串连接,不会创建出新的对象。
    如果是在一个大的循环里要进行字符串连接的话,还是用StringBuilder 比较好,因为他不会去创建新的对象,所以会节省很多时间。
      

  8.   

    少先队员
    多看看 API 把