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 ...
随机推荐
- .39-浅析webpack源码之parser.parse
因为换了个工作,所以博客停了一段时间. 这是上个月留下来的坑,webpack的源码已经不太想看了,又臭又长,恶心的要死,想去看node的源码……总之先补完这个 上一节完成了babel-loader对J ...
- PCA算法Python实现
源代码: #-*- coding: UTF-8 -*- from numpy import * import numpy def pca(X,CRate): #矩阵X每行是一个样本 #对样本矩阵进行中 ...
- Java虚拟机--Java内存区域的划分和异常
Java内存区域的划分和异常 运行时数据区域 JVM在运行Java程序时候会将内存划分为若干个不同的数据区域. 程序计数器 线程私有.可看作是当前线程所执行的字节码的行号指示器,字节码解释器的工作是通 ...
- 【Spring】2、BeanFactory 和FactoryBean的区别
转自:http://chenzehe.iteye.com/blog/1481476 1. BeanFactory BeanFactory定义了 IOC 容器的最基本形式,并提供了 IOC 容器应遵守的 ...
- 胜利大逃亡(续)hdu1429(bfs)
胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- short、int、long、float、double区别
一.基本数据类型的特点,位数,最大值和最小值.1.基本类型:short 二进制位数:16 包装类:java.lang.Short 最小值:Short.MIN_VALUE=-32768 (-2的15此方 ...
- chrome-Firefox-IE浏览器兼容总结
作为一名WEB前端程序员,相信每个人对浏览器的兼容都"情有独钟",下面就一些常用的浏览器的兼容列举一二. 一.块级元素(block)一般不转化为inline-block,其实是因为 ...
- ionic左滑删除
<html ng-app="ionicApp"> <head> <meta charset="utf-8"> <met ...
- java截取电脑全屏
通过java代码截取电脑屏幕全屏代码如下: import java.awt.AWTException; import java.awt.Dimension; import java.awt.Recta ...
- 安卓基础之Get方式发送http请求
本文参考作者:超超boy 链接:https://www.cnblogs.com/jycboy/p/post01.html 一.在android用Get方式发送http请求,使用的是java标准类. 主 ...