zoukankan      html  css  js  c++  java
  • String ,StringBuilder,StringBuffer

    一.String类使用字符数组保存字符串,数组有final修饰,不可变.线程安全

        String a="hello";String b=new String("hello");

        第一种在栈内存定义了一个a对象的引用,指向堆内存的值"hello"的内存地址

        第二种先在栈内存创建一个"hello"对象,new String又产生了另外一个对象.第一个对象无人引用

        

        

       

       上图的解释:String在Java中使用了共享设计,在Java形成一个对象池,这个对象池可以保存多个对象,如果新实例化的对象已经在对象池中存在,就不在重复定义,直接从    对象池中取出使用。

    二.StringBuilder类继承AbstractStringBuilder,底层也是字符数组保存字符串,可变.线程不安全

        //无参构造,默认长度16的字符数组

          public StringBuilder() {
                super(16);
            }

        //带参数的构造函数

         public StringBuilder(String str) {
              super(str.length() + 16);
              append(str);
            }

        //没有实现同步

           public StringBuilder append(String str) {
                super.append(str);
                return this;
            }

    三.StringBuffer类继承AbstractStringBuffer,底层也是字符数组保存字符串,可变.线程安全

        //无参构造,默认长度16的字符数组

          public StringBuffer() {
                super(16);
            }

        //带参数的构造函数

         public StringBuffer(String str) {
              super(str.length() + 16);
              append(str);
            }

      

        //和StringBuilder的区别就是同步

            public synchronized StringBuffer append(String str) {
                super.append(str);
                return this;
            }

    四.总结:

         1.如果要操作少量的数据用 = String    

                  2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder

                  3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

  • 相关阅读:
    转:PHP环境搭建
    证件号码
    3、SourceTree通过PUTTY连接GitLab
    2、gitlab 新建项目
    java基础31 List集合下的Vector集合
    java基础30 List集合下的LinkedList集合
    java基础29 迭代器 listIterator() 及各种遍历集合的方法
    java基础28 单例集合Collection下的List和Set集合
    java基础27 单例集合Collection及其常用方法
    错误/异常:The project cannot be built until build path errors are resolved 和 Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'MyJavaCode';的解决方法
  • 原文地址:https://www.cnblogs.com/2nao/p/6507571.html
Copyright © 2011-2022 走看看