首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Mirror的技术成长

    StringBuffer

    ) 任何一个字符串,都是String类的匿名对象 字符串一旦声明则不可改变,可以改变的只是String类对象的引用 StringBuffer类 区别:StringBuffer类可以改变字符串中的内容,而 StringBuffer buf = new StringBuffer(); // 调用append()方法,向StringBuffer实例化的空间String添加内容 buf.append(" ,上述代码则通过 append() 方法来后续添加字符,改变初始后的字符串buf内容 String和StringBuffer类的比较 String类 StringBuffer类 java.lang.Object (String [] args) { StringBuffer buf = new StringBuffer("Hello,World!") StringBuilder和StringBuffer类的区别 String类内容一旦声明则无法改变,而StringBuffer和StringBuilder类可以改变初始内容。

    56920发布于 2020-11-12
  • 来自专栏Java实战博客

    String、StringBuilder以及StringBuffer

    public StringBuilder append(String str) { super.append(str); return this; } StringBuffer @Override public synchronized StringBuffer append(Object obj) { toStringCache = null; super.append(String.valueOf(obj)); return this; } @Override public synchronized StringBuffer 所以,在大量相加字符串面前,不管是StringBuilder还是StringBuffer,性能都比String要好。 StringBuilder与StringBuffer对比。 所以,StringBuffer是线程安全的。

    58420编辑于 2022-01-14
  • Java StringBuffer & StringBuilder

    一、StringBuffer和StringBuilder的区别是什么? Java中的StringBuffer和StringBuilder类是用于处理字符串的可变对象;它们与String类类似,但是不同之处在于,StringBuffer和StringBuilder可以修改字符串内容 ,而String对象是不可变的;StringBuffer和StringBuilder类的用法基本相同,但StringBuilder类的效率更高,因为它不是线程安全的;二、StringBuffer的示例/ / 创建一个空的StringBuffer对象StringBuffer sb = new StringBuffer();// 向StringBuffer对象中添加字符串sb.append("Hello") 五、如何将String对象转换为StringBuilder或StringBuffer对象?

    83920编辑于 2023-03-24
  • 来自专栏JVMGC

    StringBuilder与StringBuffer

    stringBuffer=new StringBuffer(); public static void main(String[] args) throws Exception{ StringBuffer每次输出的结果与预期结果一致,因此它是线程安全的类 StringBuffer使用synchronized保证线程安全 @Override public synchronized 总结 通过以上两个例子可以知道,StringBuffer为线程安全类,StringBuilder为线程不安全类。 StringBuffer在方法的实现上使用了synchronized关键字对方法进行同步,因此是线程安全的,而StringBuilder则没有进行特殊的同步或并发处理。 StringBuffer使用了同步锁,同一时间只能有一个线程进行访问,因为在系统性能会有损耗,适用于多线程环境下使用。

    71700发布于 2021-01-27
  • 来自专栏Java 源码分析

    Java之StringBuffer

    1.存储: append(data) 添加在最后 insert(index,data) 在制定位置添加2.删除: delete(start,end) 删除某一段字符串 deleteCharAt(index) 删除置顶字符 3.获取: charAt(index) indexOf(data) lastIndexOf(data) length() subString(start,end)4.修改: replace(start,end,data) setCharAt(index,data)5.翻转: rev

    62560发布于 2018-04-17
  • 来自专栏喵叔's 专栏

    +、StringBuffer、StringBuilder区别

    于是小王找到了项目组的资深程序员刘哥,刘哥看完代码告诉小王说:你可以使用 StringBuffer 或者 SrtingBuilder 进行字符串连接。 一、讲解 Java 中 + 、 StringBuffer 和 StringBuilder 在开发中我们经常用到,但是部分开发人员就像前面故事中所讲的小王一样对这三种字符串连接方式有所疑惑,下面我就来一一讲解一下 StringBuffer StringBuffer 是 JDK 1.0 中引入的一个线程安全的字符串变量,在任意时间点上都包含特定的字符序列,并且可以调用一些方法去该表序列长度和内容。

    81920发布于 2021-01-29
  • 来自专栏魏铁锤Java迁移文章

    StringBuffer的使用

    概念:     StringBuffer可以理解为String的增强版     对字符串频繁修改(如字符串连接)时,使用StringBuffer可以大大提高程序执行效率 **创建StringBuffer 对象**     StringBuffer sb = new StringBuffer();     StringBuffer sb = new StringBuffer("hello"); **StringBuffer 来提高我们的执行效率,如果我们使用的字     符串,没有频繁的修改,那我们用String对象是最简单的,StringBuffer也表示是字符串对象,     那么如何来使用StringBuffer 来创建词词字符串对象呢,我们来看一下StringBuffer只能通过     构造方法来创建StringBuffer对象,可以用无参的,也可以用有参的,StringBuffer里边,对     字符串操作的方法 append方法     解析:首先我们看append方法,创建一个 StringBuffer对象,New StringBuffer然后再定义     一个StringBuffer对象s1.append

    72320编辑于 2022-10-27
  • 来自专栏藏经阁

    【Java】StringBuffer、StringBuilder

    StringBuffer、StringBuilder、String对比 String:不可变的字符序列;对于增删改效率最低 StringBuffer:可变的字符序列;jdk1.0声明;线程安全(使用了synchronized StringBuffer、StringBuilder可变特性分析(jkd1.8) StringBuffer、StringBuilder底层逻辑一样,以StringBuilder来说: 当我们new StringBuilder public StringBuffer() { // 为了理解,这里对源码做了修改 return new byte[16]; } 当我们new StringBuilder(String str 常用API 增: (1)StringBuffer append(xx):提供了很多的append()方法,用于进行字符串追加的方式拼接 删: (2)StringBuffer delete(int start, int end):删除[start,end)之间字符 (3)StringBuffer deleteCharAt(int index):删除[index]位置字符 改: (4)StringBuffer

    93620编辑于 2023-03-04
  • 来自专栏京东电商平台API接口开发系列

    java中stringbuffer用法:StringBuffer实现高效字符串拼接

    构造函数:StringBuffer是java中一个可变字符序列,它可以被看作是一个字符串的容器,可以在其中添加、删除、修改字符串。1. 构造函数: StringBuffer():创建一个空的字符串缓冲区,容量为16个字符 StringBuffer(int size):创建一个空的字符串缓冲区,容量为size个字符 StringBuffer class StringBufferDemo { public static void main(String[] args) { // 创建一个空的字符串缓冲区 StringBuffer sb = new StringBuffer(); // 追加字符串 sb.append("Hello "); sb.append("World!")

    90530编辑于 2023-10-07
  • 来自专栏Java学习123

    StringBuffer和StringBuild区别

    StringBuffer和StringBuild区别 1.  在执行速度方面的比较:StringBuilder >  StringBuffer    2.   StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象, 每当我们用它们对字符串做操作时,实际上是在一个对象上操作的, 不像String一样创建一些对象进行操作,所以速度就快了 StringBuilder:线程非安全的    StringBuffer:线程安全的     当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的, 虽然他的速度最快 ,但是可以保证StringBuffer是可以正确操作的    。 当然大多数情况下就是我们是在单线程下进行的操作, 所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

    67690发布于 2018-05-16
  • 来自专栏开源部署

    字符串-StringBuffer

    1、StringBuffer概述 1.1、什么是StringBuffer StringBuffer与StringBuilder一样都可以解决字符串String进行拼接操作时,每次拼接,都会构建一个新的String 对象,既耗时,又浪费空间的问题 1.2、StringBuffer与StringBuilder区别 StringBuffer是线程同步的(安全的),StringBuilder是不同步的(不安全的),二者方法完全一致 2、常用方法 public StringBuffer append(Xxx xxx) //向字符串缓冲区中添加字符串 public String toString() //将缓冲区内内容返回 public 如: StringBuffer  sb = new StringBuffer(); sb.append(“aaa”) .append(“bbb”) .append(“ccc”) .append(“ddd sb = new StringBuffer(); //  StringBuffer sb2 = sb.append("i love java "); //  StringBuffer

    44110编辑于 2022-09-14
  • 来自专栏bit哲学院

    StringBuffer和StringBuilder类

    开发从入门到精通(陈小玉版)  StringBuffer和String选择的异同 StringBuffer在进行字符串处理时,不生成新的对象,在内存的使用上要优于String类; 二者有一个最显著的区别在于 ,对于StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别  Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer 方法 以下是StringBuffer类支持的主要方法:  序号方法描述1public StringBuffer append(String s) 将指定的字符串追加到此字符序列。 buf = new StringBuffer() ;    // 声明StringBuffer对象          buf.append("World!!") public static void main(String args[]){         StringBuffer buf = new StringBuffer() ;    // 声明StringBuffer

    80230发布于 2020-12-11
  • 来自专栏空帆船w

    String、StringBuilder和StringBuffer

    这篇文章主要介绍另外两个常用的类 StringBuilder 和 StringBuffer 的特性。 我们知道 String 是不可变的 (Immutable),字符串的操作会产生新对象,消耗内存。 为此,JDK 提供了 StringBuffer 和 StringBuilder 两个类。 ,不同点在于 StringBuffer 和 StringBuilder 对象的值是可以改变的,并且值改变以后,对象的引用不会发生改变。 两者之间的不同点在于: StringBuffer 是线程安全的,StringBuilder 是线程不安全的 。 其中,StringBuffer 的线程安全是通过在 synchronize 关键字实现,为此,StringBuffer 的性能远低于 StringBuilder。

    73120发布于 2018-10-15
  • 来自专栏Java研发军团

    StringBuffer 和StringBuilder类

    StringBuffer和 StringBuilder 类 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类以及 String 类不同的是,StringBuffer 然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。 2个类的用法基本是一模一样的下面就接受其中一个吧。 StringBuffer 代码示例: ? 下面介绍StringBuffer的几个常用方法。 ? 示例 ? 下面的列表里的方法和 String 类的方法类似: ? ? 而 StringBuffer 的长度是可变的,调用StringBuffer 的 append 方法,来改变 StringBuffer 的长度,并且,相比较于 StringBuffer,String 一旦发生长度变化 面试题的回答 StringBuilder 与StringBuffer的区别,StringBuilder与String的区别。

    78820发布于 2019-08-20
  • 来自专栏用户4184852的专栏

    类(StringBuffer和String)

    ,最后用toString方法转化为String对象,总结起来就是一个StringBuffer对象和String对象的消耗(2个)。 对于String 类和 StringBuffer 类,字符在字符串中的索引位置都从0开始。 String和StringBuffer主要区别: String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的(String对象不可修改指的是对象本身不可修改 StringBuffer类的toString方法返回一个以当前StringBuffer的缓冲区中的所有字符串为内容的新的String对象的引用。 String 对象可以用 操作符 “+ “进行连接,StringBuffer不能。

    39430编辑于 2022-06-27
  • 来自专栏用代码征服天下

    String、StringBuilder和StringBuffer的区别

    StringBuffer StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse 实际上,StringBuilder和StringBuffer基本相似,两个类的构造器和方法也基本相同。 不同的是:StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。 我们可以看一下StringBuffer中的方法,用了synchronized关键字修饰,所以是线程安全的 总结 1、速度方面 StringBuilder > StringBuffer > String StringBuffer:适用于多线程下在字符串缓冲区进行大量操作。

    59220编辑于 2022-05-09
  • 来自专栏呼延

    String Stringbuilder Stringbuffer异同

    StringBuilder和StringBuffer 既然已经有了String这个功能完备的嘞,那么为什么还需要StringBuilder和StringBuffer呢? 那么StringBuffer、StringBuilder的区别在哪里呢? 这是StringBuffer的length方法和capacity方法。 ? 异同 从上面的一些源码中可以简单分析出String,StringBuilder,StringBuffer的一些异同点,如下: String是常量,不可改变,StringBuffer、StringBuilder stringBuffer = new StringBuffer(); for (int i = 0; i < 50000; i++) { stringBuffer.append(i 使用StringBuffer 原因:StringBuffer中添加了对多线程应用时的保护,可以保证线程安全,且性能下降并不严重,在可接受范围内。

    73520发布于 2019-06-26
  • 来自专栏关忆北.

    String、StringBuilder、StringBuffer的区别

    String、StringBuilder、StringBuffer String Immutable类,被声明为final class,所有的属性也都是final的,原生就是线程安全的,特性如上述, 当同一个字符串反复出现时,这个技术可以大幅度节省内存空间 StringBuffer 实现自AbstractStringBuilder,内部定义了一个初始长度是16的char数组字节缓存区,在缓存区使用 append或者add方法将字符串添加到原序列的末尾或指定位置,长度是16+Str.length,完成后StringBuffer调用toString方法才会变成一个String,StringBuffer (线程安全) StringBuilder 实现自AbstractStringBuilder,在能力上和StringBuffer没有本质区别,去掉线程安全部分,性能优于StringBuffer

    55510编辑于 2021-12-07
  • 来自专栏架构师进阶

    源码超度:String、StringBuffer、StringBuilder

    概要 String、StringBuffer、StringBuilder是常用的字符序列,从源码上对比下,三者的区别 类结构 String StringBuffer StringBuilder 都实现了interface CharSequence,interface Comparable<T>,interface Serializable StringBuilder,StringBuffer Where possible, * it is recommended that this class be used in preference to * {@code StringBuffer} 总结 String 初始化后不可修改,StringBuilder、StringBuffer支持修改。 StringBuilder、StringBuffer可以通过指定初始化容量,减少数组复制

    52910编辑于 2021-12-28
  • 来自专栏云天的博客

    Stirng、StringBuilder、StringBuffer的区别

    Stirng、StringBuilder、StringBuffer的区别 String不可变,内部char数组被private final修饰不可变,线程安全 StringBuilder可变,线程不安全 ,可以使用append进行拼接字符串 StringBuffer可变,线程安全,采用synchronized进行同步,操作和StringBuilder一样‘ 假如StringBuffer出现在循环体中即使没有出现线程竞争 ,频繁进行同步互斥会带来性能开销,所以synchronize进行了锁粗化,将锁的范围扩大到整个操作,假如是单线程使用stringBuffer,也就是不存在线程竞争,synchronizd会进行锁消除

    35120编辑于 2022-12-12
领券