String、StringBuffer与StringBuilder的区别-陈远波
String Stringbuffer StringBuilder的区别:
1、string是字符串常量,且长度是不可改变的,Stringbuffer、stringBuilder是字符串变量
2、Stringbuffer是线程安全的,StringBuilder是非线程安全,主要用在全局变量中。
3、String是改变赋值的地址,而不是改变String中的值:
如:String a = “a”;//假设它的地址是001;值a是放在常量池中的
String a = “b”;//重新对a赋值后a指向的地址就002,且将值b放入常量池,而之前的值a也是存在的。
4、String是不可变的类,每次对String的操作都会生成新的String对象,不仅效率低下,而且会大量的浪费内存空间,对于StringBuffer,每次结果都会对StringBufer本身进行操作且不会产生新的对象和改变对象的引用,所有一般都使用Stringbuffer。
5、他们三个的运行速度不一样:
(1)通常情况下,三个的运行速度排列为:StringBuilder>Stringbuffer>String。但也有特殊情况,
如:String a=”a”+”b”;
Stringbuffer b=new StringBuilder(”a”)append(”b”);
以上的话String的速度要大于StringBuffer,因为在这种情况下JVM把String a看成了 String a=”ab”了。
6、运用场景
(1)如果是操作少量的数据使用String。
(2)单线程操作字符串缓冲区下操作大量数据使用StringBuilder。
(3).多线程操作字符串缓冲区下操作大量数据使用StringBuffer。
以上知识是我参考xieke90的博客进行整理,以上知识还存在一些不足,望各位多多包涵及补充指正。若需了解更多关于java的知识的可以关注后续博客
String、StringBuffer与StringBuilder的区别-陈远波的更多相关文章
- String,StringBuffer与StringBuilder的区别??
转自http://blog.csdn.net/rmn190/article/details/1492013 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBu ...
- JAVA String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...
- 转 String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...
- String,StringBuffer与StringBuilder的区别??[转]
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...
- 【Java】String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...
- String,StringBuffer与StringBuilder的区别?? 缓存
转: String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主 ...
- 《转》String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...
- (转)String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...
- String,StringBuffer与StringBuilder的区别与选择
三者的区别 String:不可变类,一旦一个对象被建立的时候,包含在这个对象中的字符串序列是不可变的,直到这个对象被销毁.StringBuffer:可变字符序列的字符串.当其对象被创建的时候,可以用a ...
随机推荐
- jQuery中的函数汇总1
欢迎访问我的github:huanshen,有我的源码解析 1.each 跟for循环很像,但是更有用,如果你理解了就知道了. // 遍历一个数组或者对象 // obj 是需要遍历的数组或者对象 // ...
- SQL Server T—SQL 表连接
一 笛卡尔积 select * from 表1,表2 将两表的记录遍历显示 二表的横向连接 1 使用外键关系作为条件 select * from 表1,表2 where 表1 ...
- $.each()和$(selector).each()
转载:http://www.jb51.net/article/65215.htm $.each()与$(selector).each()不同, 后者专用于jquery对象的遍历, 前者可用于遍历任何的 ...
- 乐字节-Java8新特性之Stream流(上)
上一篇文章,小乐给大家介绍了<Java8新特性之方法引用>,下面接下来小乐将会给大家介绍Java8新特性之Stream,称之为流,本篇文章为上半部分. 1.什么是流? Java Se中对于 ...
- 随机错乱排序(sort的应用)
新手上路,大家多多指教哈,,, #include <iostream> #include <algorithm> #include <ctime> using na ...
- Java - Stack源码解析
Java提高篇(三一)-----Stack 在Java中Stack类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的.每一个栈都包含一个栈顶,每次出 ...
- 关于如何在本地IIS搭建网站
步骤一: 首先安装与配置IIS服务,可借用百度经验:http://jingyan.baidu.com/article/d5a880eb75f74713f047cc57.html 步骤二: 修改web. ...
- Code Signal_练习题_firstDigit
Find the leftmost digit that occurs in a given string. Example For inputString = "var_1__Int&qu ...
- CF712E Memory and Casinos
设\(f[i]\)为从\(i\)到\(r+1\)且不走出区间的概率 \(f[i]=p[i]f[i+1]+(1-p[i])f[i-1]\) \(f[i]-f[i-1]=p[i](f[i+1]-f[i-1 ...
- 解决stackoverflow打开缓慢的问题
一.原因: 因为stackoverflow用的是谷歌的api,在国内谷歌是被禁用的,所以才会打开缓慢,并不是stackverflow被墙 二.解决方法: 1.如果你正在使用的是火狐浏览器,那么请按照下 ...