java String、StringBuilder和StringBuffer的区别详解
1.共同点:
三者都是字符串类。StringBuilder和StringBuffer都是继承AbstractStringBuilder类,存储字符串都是使用数组进行存储的。
2.区别:
a. String 类存储字符串使用的数组被final进行修饰了,当对String对象进行增加修改字符时,都需要重新new一个字符数组,将原来的值拷贝到新的字符数组中,所以当字符串的值需要经常修改的时候就需要考虑用StringBuilder或StringBuffer来进行处理了。
public final class String implements java.io.Serializable, Comparable<String>, CharSequence {
private final char value[];
}
b.StringBuffer和StringBuilder也是使用字符数组来进行存储字符串的,但没有使用final进行修饰;StringBuffer定义的方法都加入了synchronized修饰,也就是说StringBuffer类方法都是线程安全的,而StringBuilder方法没有被修饰,两者常用的方法是append()。
3.使用场景:
- 当字符串值不会变化时,考虑使用String
- 当字符串的值多变的时候,考虑使用StringBuilder或者StringBuffer
- 当要求线程安全时候,考虑使用StringBuffer。
上一篇:java取两个字符串的最大交集
栏 目:JAVA代码
下一篇:详解解决IDEA2020.1版本的lombok插件问题
本文标题:java String、StringBuilder和StringBuffer的区别详解
本文地址:http://www.codeinn.net/misctech/80366.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




