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的区别-陈远波的更多相关文章

  1. String,StringBuffer与StringBuilder的区别??

    转自http://blog.csdn.net/rmn190/article/details/1492013 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBu ...

  2. JAVA String,StringBuffer与StringBuilder的区别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  3. 转 String,StringBuffer与StringBuilder的区别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  4. String,StringBuffer与StringBuilder的区别??[转]

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  5. 【Java】String,StringBuffer与StringBuilder的区别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  6. String,StringBuffer与StringBuilder的区别?? 缓存

    转: String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主 ...

  7. 《转》String,StringBuffer与StringBuilder的区别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  8. (转)String,StringBuffer与StringBuilder的区别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  9. String,StringBuffer与StringBuilder的区别与选择

    三者的区别 String:不可变类,一旦一个对象被建立的时候,包含在这个对象中的字符串序列是不可变的,直到这个对象被销毁.StringBuffer:可变字符序列的字符串.当其对象被创建的时候,可以用a ...

随机推荐

  1. RecyclerView 使用指南

    最近看了很多 RecyclerView 的使用文章,一直晕乎乎的,完全不知道套路是啥.很多人都是直接上代码,但是却没有详细说明代码的使用,于是打算自己写写,理理思路.顺便帮助那些正在学习 Androi ...

  2. 撩课-Web大前端每天5道面试题-Day34

    1.React 中 keys 的作用是什么? Keys 是 React 用于追踪哪些列表中元素被修改.被添加或者被移除的辅助标识. render () { return ( <ul> {t ...

  3. 诡异的楼梯(bfs)hdu1180

    诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submiss ...

  4. Safe Or Unsafe(hdu2527)哈弗曼VS优先队列

    Safe Or Unsafe Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  5. wagon-maven-plugin实现自动打包部署到服务器

    1.在maven中添加依赖 <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/wagon-maven-plugin --> ...

  6. MySQL的事务的处理

    步骤: 1.开启事务 start transaction 当我们开启一个事务的时候,我们对sql的操作都发生在内存中,但是没有真正的反馈到数据库磁盘的文件中! 2.回滚 rollback 回滚,就是恢 ...

  7. Tornado入门

    一.概述 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像是一个py文件,不过为了能有效利用非阻塞式服务器环境,这 ...

  8. ActiveReports 报表应用教程 (15)---报表换肤

    在葡萄城ActiveReports报表中,可以设置报表中不同控件的样式,然后把这些样式保存到一个外部的XML文件当中,供其他报表使用.如果用户希望同一份报表以不用的外观分发,只需要简单地修改样式表单, ...

  9. Postman Google浏览器离线安装Postman插件

    Google浏览器离线安装Postman插件 by:授客 QQ:1033553122 解决无法通打开谷歌web商店安装Postman插件的问题,文章参考网络. 测试环境:ChromeStandalon ...

  10. 数据库批量操作中SqlParameter参数传递的问题

    数据库批量操作 比如会写:update T_AdminUsers set IsEnabled=@IsEnabled where Id in (@ids) 然后再SqlParameter("@ ...