广告
返回顶部
首页 > 资讯 > 精选 >java中String、StringBuilder、StringBuffer三者有什么区别
  • 577
分享到

java中String、StringBuilder、StringBuffer三者有什么区别

2023-06-06 14:06:12 577人浏览 独家记忆
摘要

这篇文章给大家介绍java中String、StringBuilder、StringBuffer三者有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。可变性首先,String是字符串,我们一般这样声明:String

这篇文章给大家介绍java中String、StringBuilder、StringBuffer三者有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

可变性

首先,String是字符串,我们一般这样声明:

String s = "abc";

String类使用被final修饰的char数组来存储字符串的内容,它的一大特性就是不可变,怎么理解这个不可变呢?

我们知道,一个类被final修饰,那么这个类无法被继承,方法也不能被重写,属性也不能改变。

看看这段代码:

String s = "abc";s = s+1;System.out.print(s); // 输出: abc1

表面上s的值由abc变成了abc1,其实并不是这样,而是在进行+1的操作时,重新创建了一个新的String对象,并给它赋值为abc1.

StringBuilder和StringBuffer这俩货同样用char数组存字符串,但并没有用final修饰,因此它们创建的内容的可变的,并不像String那样创建了一个新的对象。

线程安全

String是常量,自然没有线程不安全的问题,但是StringBuilder和StringBuffer是变量,就需要考虑这个。

我们查看StringBuilder的源码

 @Override public int compareTo(StringBuilder another) {  return super.compareTo(another); } @Override public StringBuilder append(Object obj) {  return append(String.valueOf(obj)); }

再看看StringBuffer的:

 @Override public synchronized int compareTo(StringBuffer another) {  return super.compareTo(another); } @Override public synchronized int length() {  return count; } @Override public synchronized int capacity() {  return super.capacity(); }

发现没有,StringBuffer的每个方法都加了synchronized同步,保证了线程安全,而StringBuilder没加。

性能比较

StringBuilder>StringBuffer>String

String作为常量,每次更改都创建新对象,性能最低;StringBuilder没有StringBuffer身上的锁,因此性能更好。

关于java中String、StringBuilder、StringBuffer三者有什么区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: java中String、StringBuilder、StringBuffer三者有什么区别

本文链接: https://www.lsjlt.com/news/247242.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中String、StringBuilder、StringBuffer三者有什么区别
    这篇文章给大家介绍java中String、StringBuilder、StringBuffer三者有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。可变性首先,String是字符串,我们一般这样声明:String...
    99+
    2023-06-06
  • Java中String和StringBuffer及StringBuilder 有什么区别
    目录String类为什么是immutable(不可变的)如何保证不可变string类为不可变对象的好处前言: String 是 Java 语言非常基础和重要的类,提供了构造...
    99+
    2022-11-13
  • 【JAVA】String ,StringBuffer 和 StringBuilder 三者有何联系?
    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言StringBufferStringBuffer方法 StringBuilderStringBuilder方法 String...
    99+
    2023-08-16
    java python 开发语言
  • Java中String、StringBuffer、StringBuilder的区别是什么
    本篇内容主要讲解“Java中String、StringBuffer、StringBuilder的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中String、StringBuf...
    99+
    2023-06-04
  • String,StringBuffer,StringBuilder区别是什么
    本篇内容主要讲解“String,StringBuffer,StringBuilder区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“String,StringBuffer,StringB...
    99+
    2023-06-19
  • java中String、StringBuffer与StringBuilder的区别
    String String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。 这个是String类的解释,之前小咸儿看到...
    99+
    2022-11-12
  • java中String StringBuffer和StringBuilder的区别是什么
    这篇文章主要介绍“java中String StringBuffer和StringBuilder的区别是什么”,在日常操作中,相信很多人在java中String StringBuffer和StringBuilder的区别是...
    99+
    2023-06-28
  • Java中String、StringBuffer和StringBuilder的区别是什么
    这篇文章主要讲解了“Java中String、StringBuffer和StringBuilder的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中String、String...
    99+
    2023-06-27
  • java中String、StringBuffer与StringBuilder的区别是什么
    这篇文章主要介绍“java中String、StringBuffer与StringBuilder的区别是什么”,在日常操作中,相信很多人在java中String、StringBuffer与StringBuilder的区别是什么问题上存在疑惑,...
    99+
    2023-06-21
  • java中String、StringBuffer、StringBuilder之间的区别
    区别如下:1) String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的。2) 对于StringBuffer,不能像String那样直接通过赋值的方式完成对象实例化,必须通过构造...
    99+
    2017-08-19
    java入门 java String StringBuffer StringBuilder 区别
  • Java中Sring和StringBuffer、StringBuilder间有什么区别
    这篇“Java中Sring和StringBuffer、StringBuilder间有什么区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一...
    99+
    2023-06-27
  • Java中StringBuffer和StringBuilder的区别有哪些
    本篇内容主要讲解“Java中StringBuffer和StringBuilder的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中StringBuffer和StringBuil...
    99+
    2023-06-15
  • java中BIO、NIO、AIO三者有什么区别
    这篇文章给大家介绍java中BIO、NIO、AIO三者有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、BIO(Blocking IO,也被称作old IO)同步阻塞模型,一个客户端连接对应一个处理线程对于每...
    99+
    2023-06-14
  • C# 中StringBuilder和String的区别是什么
    今天就跟大家聊聊有关C# 中StringBuilder和String的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# StringBuilder和String区别Str...
    99+
    2023-06-17
  • @RequestParam、@PathParam、@PathVariable三者有什么区别
    本篇文章为大家展示了@RequestParam、@PathParam、@PathVariable三者有什么区别,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。@RequestParam 和 @Path...
    99+
    2023-06-06
  • String与StringBuffer在java 中有什么不同
    本篇文章为大家展示了String与StringBuffer在java 中有什么不同,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. String 类 String的值是不可变的,这就导致每次对St...
    99+
    2023-05-31
    java string stringbuffer
  • map()、apply()、applymap()三者在pandas中有什么区别
    map()、apply()、applymap()三者在pandas中有什么区别?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。将通过实例来演示三者的区别toward_dict&n...
    99+
    2023-06-06
  • MySQL中char、varchar和text三者的区别是什么
    今天就跟大家聊聊有关MySQL中char、varchar和text三者的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体说明:char:...
    99+
    2022-10-18
  • golang中uint8、int8和byte三者的区别是什么
    今天就跟大家聊聊有关golang中uint8、int8和byte三者的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。简单说明uint8与byte可以说是一样的,因为文档中有...
    99+
    2023-06-14
  • C#中Abstract 、Virtual和Override三者的区别是什么
    C#中Abstract 、Virtual和Override三者的区别是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 abstract 修饰符指示所修饰的内容缺少实现或未完...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作