Java中的String,StringBuffer,StringBuilder的区别

原创 2015年07月07日 17:37:21

Java为我们提供了三个对字符串操作的类,分别是String,StringBufferStringBuilder

String

其中String在Java中是通过常量池来实现的,String本身是常量池中一个元素的引用,每次String的值在常量池中不存在都将构建新的常量字符串并且产生未被使用的对象。

所以String得值并不适合多次改变否则效率就会变得很低。

StringBuilder和StringBuffer

当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。

和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBuilder类在Java 5中被提出,它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(不能同步访问)。

由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议使用StringBuilder类。然而在应用程序要求线程安全的情况下,则必须使用StringBuffer类。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java String为什么是不可变类,StringBuffer与StringBuilder区别

熟悉Java的都知道String类是不可变,但String类为什么设计成不可变类,如何做到不可变没有仔细想过。 String为什么设计成不可变类? 1.Java字符串池的设计方式。     Strin...
  • chenchaofuck1
  • chenchaofuck1
  • 2016年03月10日 15:15
  • 2045

Java基础之String、StringBuffer与StringBuilder的区别及应用场景

1 String、StringBuffer与StringBuilder (1)String 字符串常量; /** Strings are constant; their values cann...
  • chenliguan
  • chenliguan
  • 2016年07月14日 18:35
  • 5888

从Java源码角度彻底理解String,StringBuilder和StringBuffer的区别

字符串,就是一系列字符的集合。 Java里面提供了String,StringBuffer和StringBuilder三个类来封装字符串,其中StringBuilder类是到jdk 1.5才新增的...
  • hj7jay
  • hj7jay
  • 2016年10月09日 20:31
  • 3286

String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?

本内容是我从各处转载整理得来,是我的学习笔记,如有涉及到版权问题,请给我留言。 或者内容中有不正确的地方,也请各位大神能帮我指出更改,谢谢! 一、区别 1、String是字符串常量,而String...
  • dorapan1987
  • dorapan1987
  • 2015年03月17日 20:36
  • 876

Java中String,StringBuffer,StringBuilder常用方法及使用实例

package stringtest; public class StringOpera { public static void main(String[] args) { Strin...
  • u012768347
  • u012768347
  • 2017年03月12日 16:33
  • 334

StringBuffer 与 StringBuilder 区别与联系及源码分析

StringBuffer和StringBuilder的共同点: 1、都是用于操作字符串,使用这两个而不使用String的原因是因为String是Final类型,当对字符串操作较多时采用Str...
  • u010854517
  • u010854517
  • 2017年03月08日 10:07
  • 195

Java中字符串探索—-String ,StringBuffer ,StringBuilder及字符串缓存池

转载来自:http://www.xuebuyuan.com/403602.html 字符串是编程中应用到最多的一个数据类型,简单实用,但是深入理解它们,会给我们带来更多好处。 字符串缓...
  • shehun11
  • shehun11
  • 2015年09月02日 11:56
  • 464

String,StringBuffer与StringBuilder的区别|线程安全与线程不安全

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)  简要的说, String 类型和 StringBuffer 类...
  • u014086926
  • u014086926
  • 2016年07月29日 22:28
  • 7892

StringBuilder和StringBuffer解析(百度面试题优化需要用到的)

StringBuilder是java5及以后提供的API,它不是线程安全的,而StringBuffer是java1.4以前的API,它是线程安全的,所以说StringBuilder的效率更高一些,今天...
  • u012859193
  • u012859193
  • 2014年04月26日 11:15
  • 2251

常见对象_StringBuffer的两个小面试题、String和StringBuffer分别作为参数传递

package cn.itcast_08; /* * 面试题 * 1:String,StringBuffer,StringBuilder的区别? * A:String是内容不可变的,...
  • L1585931143
  • L1585931143
  • 2016年11月16日 22:15
  • 789
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中的String,StringBuffer,StringBuilder的区别
举报原因:
原因补充:

(最多只允许输入30个字)