• String和StringBuffer 的区别


    一、String是可变类,StringBuffer是不可变类 。

    package test;
    /**
     * Created by Lenovo on 2015/2/9.
     */
    public class Spliter
    {
        public static void main(String[] args) {
          String s=new String("    hello world   " );
            s.toUpperCase();
            s.trim();
            System.out.println(s.toString());
            /*
            输出结果是     hello world   (前后有空格)
            String 创建后它的内容无法改变,toUpperCase,trim等实际是创建并返回一个带有改变后内容的新的字符串对象,toString返回当前的实例本身的引用  *、
             */
    
          StringBuffer sb= new StringBuffer("     hello ");
            sb.append("world     ");
            sb.insert(0, "yoyo");
            System.out.println(sb.toString());
    
             /*
            输出结果是 yoyo   hello world
            StringBuffer 的 insert appender,replaceAll等会改变字符缓冲区中的内容 toString 返回一个当前StringBuffer的缓冲区中内容的新的String对象的引用。
    
             */
        }
    }

    二、String类覆盖了equal方法,StringBufffer没有

     1 package test;
     2 
     3 /**
     4  * Created by Lenovo on 2015/2/9.
     5  */
     6 public class Spliter
     7 {
     8     public static void main(String[] args) {
     9         String s1=new String("hello world" );
    10         String s2=new String("hello world" );
    11         System.out.println(s1==s2);     // 返回false
    12         System.out.println(s1.equals(s2));  // 返回true
    13 
    14         StringBuffer s3=new StringBuffer("hello world" );
    15         StringBuffer s4=new StringBuffer("hello world" );
    16         System.out.println(s1==s2);     // 返回false
    17         System.out.println(s3.equals(s4));  // 返回false
    18     }
    19 }

    三、String对象之间可以用’+‘ 连接 ,StringBuffer不能 。

     1 package test;
     2 
     3 /**
     4  * Created by Lenovo on 2015/2/9.
     5  */
     6 public class Spliter
     7 {
     8     public static void main(String[] args) {
     9         String s1=new String("hello world" );
    10         String s2=new String("hello world" );
    11         String ss=s1+s2;
    12         System.out.println(ss.toString());  //返回 hello worldhello world
    13 
    14         StringBuffer s3=new StringBuffer("hello world" );
    15         StringBuffer s4=new StringBuffer("hello world" );
    16         StringBuffer ss2=s1+s2;  //编译出错
    17         System.out.println(ss2.toString());
    18 
    19 
    20     }
    21 }
  • 相关阅读:
    Epplus导出excel
    访问GitHub需要修改hosts
    如何将你的.Net Core程序部署成为服务
    生成雪花Id类
    文件操作帮助类
    工作流-WikeFlow
    《C语言进阶剖析》课程目录
    《C++深度解析》课程目录
    USB URB的status及其代表的意义
    数据结构优秀博文整理
  • 原文地址:https://www.cnblogs.com/assult/p/4281661.html
Copyright © 2020-2023  润新知