1、String

String变量的值不能改变,如果要改变String变量的值,虚拟机首先会遍历方法区中的字符串常量,如果存在需要的值,则虚拟机直接把此常量值的地址分配给String变量,如果不存在这样的值,虚拟机则会另外在方法区中划分出一块内存空间存储字符串常量,然后把这块地址赋给String变量。

因此,String类的内容声明后不可被改变,改变的只是其内存地址的指向。

2、StringBuffer

StringBuffer是使用缓冲区存储字符串对象的,对象的内容可以改变。并且是线程安全的。

StringBuffer不像String可以通过直接赋值的方式实例化,他必须通过构造方法完成实例化。

3、StringBuilder

StringBuilder跟StringBuffer是一样,字符串对象的内容可以改变,但是StringBuilder是线程不安全的。

StringBuilder不像String可以通过直接赋值的方式实例化,他必须通过构造方法完成实例化。

4、赋值

String采用+连接字符串或字符; StringBuilder或StringBuffer通过append方法连接字符或字符串。

5、StringBuffer或StringBuilder常用方法

append , insert, delete , replace , substring, indexOf(查找), reverse

java中string , StringBuffer , StringBuilder 区别的更多相关文章

  1. Java中String/StringBuffer/StringBuilder区别(转)

    1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String 2.String <(StringBuffer,StringBuild ...

  2. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  3. java中String,StringBuffer,StringBuilder之间的区别

    文章转载自:http://www.cnblogs.com/frankliiu-java/archive/2010/07/05/1771537.html String是固定长度的字符串,如果要发生变化必 ...

  4. 探秘Java中String、StringBuilder以及StringBuffer

    探秘Java中String.StringBuilder以及StringBuffer 相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问 到的地方,今天就来和大家一起学习 ...

  5. 转:String StringBuffer StringBuilder区别

    转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸 ...

  6. JAVA中String和StringBuilder类的特点及使用

    转自:https://www.imooc.com/code/2202 仅做个人学习记录之用,侵删! 什么是 Java 中的字符串 在 Java 中,字符串被作为 String 类型的对象处理. Str ...

  7. String&StringBuffer&StringBuilder区别

    String  String类是final类故不可以继承,也就意味着String引用的字符串内容是不能被修改.String有两种实例化方式:    (1)直接赋值(例中,String str = &q ...

  8. java 中String与StringBuilder 效率

    之前印象中string与stringbuilder操作时,如果多次改变string就使用stringbuilder,效率会提高: 今天实际遇到了问题,亲身经历过之后,这性能不是一般的影响啊:不是同一个 ...

  9. java中String、StringBuilder、StringBuffer三者的区别

    在Java项目开发中,字符串是最长使用的数据类型,而有关字符串的String.StringBuilder.StringBuffer三者又常常让人分不清楚什么时候该使用哪个. 特此整理一下. Strin ...

随机推荐

  1. Ubuntu安装opencv 为调用gpu模块

    也真够折腾的. 事件背景:为了一个光流的提取处理,本来是3.1的opencv在include一些模块上出错,原因是opencv3.0以上的版本对模块进行了再分离,要contribute,但是contr ...

  2. 关于 Vue 微信客户端 不能播放音乐(报错和不能播放的问题)

    前言 用vue 做音乐播放的时候,在本地可以打开播放,但在微信里面不能播放音乐 所以这样解决 // 音乐播放 audioPlay(){ let _this = this; var audio = _t ...

  3. tornado下pandas ndarray乱试

    from tornado.web import RequestHandler from pymongo import MongoClient import pandas,xlrd from panda ...

  4. js 设置多条css样式

    如果在一个网页中给id="mydiv"的元素添加css样式,先获取该节点:var obj = document.getElementById("mydiv"); ...

  5. 安装Go语言及环境的搭建

    下载 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 安装 Windows安装 此安装实例以 ...

  6. WebKitBrowser

    WebKit.net是对WebKit的.Net封装, 使用它.net程序可以非常方便的集成和使用webkit作为加载网页的容器. 首先 下载WebKit.net 的bin文件. 然后 新建一个Wind ...

  7. Java架构师面试题——JVM性能调优

    JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数. 1.Full GC 会对整个堆进行整理,包括Young.Tenured和Perm.Full GC因为需要对 ...

  8. yum provides 反查询

    yum provides  可以反查询到 你要使用的命令包含 在哪个包里 然后使用yum install 即可安装: [root@git02 ~]# yum provides */nslookupLo ...

  9. 微信小程序开发整理

    具体介绍包含以下内容: 1.文件结构 2.组件 4.API 4.工具 5.问题

  10. [LOJ6433][PKUSC2018]最大前缀和:状压DP

    分析 我们让每个数列在第一个取到最大前缀和的位置被统计到. 假设一个数列在\(pos\)处第一次取到最大前缀和,分析性质,有: 下标在\([1,pos]\)之间的数形成的数列的每个后缀和(不包括整个数 ...