JAVA基础——String,StringBuilder,StringBuffer的区别。
来源:互联网 发布:手机本地端口号 编辑:程序博客网 时间:2024/05/28 15:25
Java中我们常用来修饰字符串的三个定义字符串的是String,StringBuilder,StringBuffer。
一、String
作为程序员最常用的String,我们经常运用String来定义字符串。
例如局部变量,全局变量、类的属性等,我们都会用到String。
查看Java API 底层的String定义为final char value[].
即不可类,任何对String的改变都会生成一个新的变量。
二、StringBuilder
StringBuilder,我们直接看底层
StringBuilder 的底层定义为 char[] value,即StringBuilder 是一个可变类。
对其所指带的变量的改变都不会产生新的变量。
三、StringBuffer
通过底层查看 我们发现StringBuffer底层也是char[] value。
那StringBuffer和StringBuilder我们可以确定都是一个可变类,即其所指带的变量的改变都不会产生新的变量。
那么疑问来了 StringBuilder和StringBuffer之间的区别呢?
四、StringBuilder和StringBuffer之间的区别。
StringBuilder和StringBuffer之间的区别,我们可以参照HashTable和HashMap。
我们知道HashTable是线程安全的,而HashMap不是。在单线程下,我们更多的使用的是HashMap,因为HashMap的效率更高。StringBuffer和Stringbuilder和他们的原理和操作基本相同。追查底层我们会发现StringBuffer的append用重载加入了synchronized方法,
而StringBuilder则没有
使用场景:
StringBuffer是线程安全的,适合在多线程的环境中使用。
而StringBuilder不是线程安全的,不支持并发,但效率较高,不适合在多线程环境中使用。
新引入的StringBuilder不是线程安全的,但其在单线程中的使用效率较高。
本文也阅读了一些CSDN大牛的描述,包括测试StringBuilder和StringBuffer的效率问题,以及Stringbuffer和StringBuilder的一些常见接口。经过自己的阅读,还是配合源码才能理解。
- JAVA基础——String,StringBuilder,StringBuffer的区别。
- java基础 String 、StringBuffer、StringBuilder的区别
- Java基础——String、StringBuffer、StringBuilder
- 【Java基础之String、StringBuilder、StringBuffer】Java中的String、StringBuilder以及StringBuffer的区别
- Java基础——浅谈String、StringBuffer和StringBuilder的区别
- 【java】——String、 StringBuffer和StringBuilder的区别
- Java笔记—String,StringBuffer ,StringBuilder 的区别
- Java—String、StringBuffer、StringBuilder的用法与区别
- 【Java基础】String,StringBuffer,StringBuilder之间的区别
- Java基础之String、StringBuffer、StringBuilder的区别
- Java基础之String、StringBuffer、StringBuilder的区别
- java基础(七)String、StringBuffer与StringBuilder的区别
- java基础面试题1-----String,StringBuffer,StringBuilder的区别
- String、StringBuffer与StringBuilder的区别--Java基础060
- JAVA基础之InterView(一)--String+StringBuffer+StringBuilder的区别
- 【java基础】String、StringBuilder和StringBuffer的区别
- Java基础之String,StringBuffer与StringBuilder的区别浅谈
- Java基础12:String、StringBuffer和StringBuilder的区别
- sublime3下配置Less
- Python对象属性的自动更新
- AdaBoost与随机森林区别
- 初探Java源码之ArrayList
- 蓄水池抽样算法 & 随机洗牌算法
- JAVA基础——String,StringBuilder,StringBuffer的区别。
- JAVA界面----实现打开新窗口后,原窗口不可操作,关闭新窗口后,原窗口才可操作
- 深入理解JVM(七)——性能监控工具
- block详解,以及情况分类
- Filter过滤器的应用--处理字符编码
- zookeeper技术点介绍
- 游戏金币系统
- 政府职位简介
- 当DevOps遇见AI,智能运维的黄金时代