String,StringBuffer,StringBuilder类异同辨析

  • 框架
    • String对象的建立方法及底层
    • StringBuffer与String的区别
    • StringBuilder与StringBuffer区别

框架

String对象的建立方法及底层

  1. 通过如下代码展示两种建立方法
package com.immunize.review;/*** String对象的建立方法及底层* * @author Mr IMMUNIZE**/
public class StringTest {public static void main(String[] args) {// 第一种创建方法String s1 = "immunize";System.out.println(s1);// 第一种创建方法String s2 = new String("immunize");System.out.println(s2);System.out.println(s1 == s2);// falseSystem.out.println(s1.equals(s2));// true}}

执行结果如图:

  1. 底层实现简单说明
    底层,如果直接使用第一种方法创建String类,则java会在常量池中建立"immunize"这个量,而如果是第二种创建方法,他会先在堆内存中开辟新的内存空间,存放这个"immunize"。具体的原因可参照上图代码结果。

  2. 因此如果比较两个字符串的内容是否相同,建议使用equals方法。

StringBuffer与String的区别

  1. StringBuffer底层实现是一个char数组,并且默认长度为16

  2. StringBuffer的3种构造方法辨析
package com.immunize.review;/*** StringBuffer的3种构造方法异同* * @author Mr IMMUNIZE**/
public class StringBufferTest {public static void main(String[] args) {// 01StringBuffer s1 = new StringBuffer();System.out.println(s1.capacity());// 16// 02StringBuffer s2 = new StringBuffer(100);System.out.println(s2.capacity());// 100// 03StringBuffer s3 = new StringBuffer("immunize");System.out.println(s3.capacity());// 16+8=24}}

StringBuilder与StringBuffer区别

  1. 底层实现完全相同
  2. StringBuffer是jdk1.0版本加入的,线程安全但是效率低
  3. StringBuilder是jdk1.5版本加入的,线程不安全但是效率高。

20191001:String,StringBuffer,StringBuilder类异同辨析相关推荐

  1. 重温java中的String,StringBuffer,StringBuilder类

    不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...

  2. String StringBuffer StringBuilder的异同

    1.String与StrIngBuffer StringBuilder的主要区别在于StrIng是不可变对象,每次对String对象进行修改之后,相对于重新创建一个对象. String源码解读: pr ...

  3. String,StringBuffer,StringBuilder三者的异同

    String,StringBuffer,StringBuilder三者的异同:? String:不可变的字符序列;底层使用char[]存储(用final修饰) StringBuffer:可变的字符序列 ...

  4. StringBuffer类,StringBuffer类和String的区别、String,StringBuffer,StringBuilder之间的区别

    1.概述 StringBuffer是一个线程安全的可变序列. 2.StringBuffer与String区别 (1)StringBuffer的长度和内容都可以发生改变,String却不行 (2)Str ...

  5. 2019-7-9 [JavaSE] String ,StringBuffer,StringBuilder比较 装箱和拆箱 日期类 正则

    文章目录 1.StringBuffer类 方法: 利用StringBuffer开头与结束的时间计算: String ,StringBuffer,StringBuilder比较 2.装箱和拆箱 3.日期 ...

  6. 浅谈 Java 字符串(String, StringBuffer, StringBuilder)

    我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...

  7. String、StringBuilder类连接字符串操作的时间差异

    最新文章:Virson's Blog 刚刚看到园子里面写了一篇关于Java的<StringBuilder.StringBuffer.String类之间的关系>的文章,自己也想试试看C#的S ...

  8. java中 String StringBuffer StringBuilder的区别

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

  9. String, StringBuffer,StringBuilder

    String, StringBuffer,StringBuilder的区别 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,都实现了CharSe ...

最新文章

  1. Windows Phone本地数据库(SQLCE):5、[Association]attribute(翻译)(转)
  2. 自动添加端口添加至Windows防火墙脚本
  3. HDU 1257 最少拦截系统
  4. 我理解消化后的浮点数存储
  5. 基于Netty的百万级推送服务设计要点
  6. 前端学习(1746):前端调试值之时间监听
  7. 如何使用notepad运行python程序
  8. python面试如何以相反顺序展示一个文件的内容?
  9. 自动驾驶 6-1: 横向车辆控制介绍 Lesson 1: Introduction to Lateral Vehicle Control
  10. cop2000计算机组成原理,COP2000计算机组成原理实验系统.pdf
  11. Python查找字符串中的所有汉字
  12. android 博饼代码,中秋博饼游戏下载
  13. 360云盘怎么用连接服务器异常,360云盘突然登录不上去了怎么回事 网络没问题但是360云盘登不上去怎么办...
  14. 工作记录 io流写入linux文件
  15. C++ 赛码打字编程题
  16. Lerna 多 package 源代码管理方案
  17. RK3288 EDP 调试
  18. 关于任务计划指定错误:0X80041315、0X80070005拒绝访问
  19. __str__()方法
  20. Cocos2d-x 3.X, Android Studio版添加广点通广告平台

热门文章

  1. 小辣椒手机创始人王晓雁加入小米;手机 QQ 可显示对方实时电量;Git Extensions 3.3.1 发布 | 极客头条...
  2. 二十年的编程,教会我的五件事!
  3. 如何彻底搞懂 Java 数据结构?|CSDN 博文精选
  4. 超分辨率在移动实时音视频的应用实践
  5. 60 岁的 COBOL 凭什么活到现在?
  6. 牛!这本 Python 3.6 的书火爆了 IT 圈!
  7. 鲍勃·维德拉:一位硬件工程师的叛逆传奇 | 人物志
  8. 深度探秘大数据新应用,2018 中国大数据技术大会(BDTC)强势来袭!
  9. DNS 教父怒喷 DNS-over-HTTPS!
  10. 腾讯网易已称王,今日头条有什么勇气来做游戏?