zoukankan      html  css  js  c++  java
  • String StringBuffer StringBuilder 三者之间的区别

    今天被公司骗去面试,好糟心......

    这个问题不管去哪里面试,基础问题基本上都会问到这个问题。网上好多大神都总结,这里自己也总结一下。

    首先我们最开始学的就是String字符串常量,这里有行代码 String str = "hello"+"world"+"!";其实这行代码与下面几行表示的是相同的含义;

    String s = "hello world !"; str与s是等效的。

    String s1 = "hello";

    String s2 = "world";

    String s3 = "!";

    String s4 = s1 + s2 + s3;//

    对,也就是说这里JVM创建了四个对象,String是不可变对象。

    StringBuffer 是字符串变量,线程安全,

    StringBuffer sb = new StringBuffer();

    sb.append("hello").append("world").append("!");//这行代码的执行效率要快于 s4的执行效率。

    System.out.prientln(sb);// hello world !

    StringBuilder 是字符串变量,是线程非安全的

    三者使用区别:

    要操作的字符串数量少的话可以使用String;如果数量很大,建议使用StringBuffer,多线程操作字符串缓冲区 下操作大量数据 要使用 StringBuffer

    单线程操作字符串缓冲区 下操作大量数据 使用 StringBuilder

    或许有些地方说的不对,后续继续学习完善。

  • 相关阅读:
    codevs2606 约数和问题
    UOJ150 运输计划
    codevs1279 Guard 的无聊
    codevs1997 守卫者的挑战
    codevs1291 火车线路
    codevs1217 借教室
    codevs1281 Xn数列
    codevs1218 疫情控制
    codevs1199 开车旅行
    BZOJ1941 [Sdoi2010]Hide and Seek
  • 原文地址:https://www.cnblogs.com/yangh965/p/5087134.html
Copyright © 2011-2022 走看看