首页 > 其他分享 >10. String、StringBuffer和StrIngBuilder的区别是什么?

10. String、StringBuffer和StrIngBuilder的区别是什么?

时间:2024-12-22 16:53:19浏览次数:5  
标签:10 String 字符 StringBuffer value StrIngBuilder StringBuilder 字符串

String是只读字符串,它并不是基本数据类型,而是一个对象。从底层源码来看是一个final类型的字符数组,所引用的字符串不能被改变,一经定义,无法再增删改。每次对String的操作都会生成新的String对象。
private final char value[];
每次+操作:隐式在堆上new一个跟原字符串相同的StringBuilder对象,再调用append方法拼接+后面的字符。

StringBuffer和StringBuilder它们俩都继承了AbstractStringBuilder抽象类,从AbstractStringBuilder抽象类中我们可以看到
`/**

  • The value is used for character storage.
    */
    char[] value;`
    它们的底层都是可变的字符数组,所以在进行频繁的字符串操作时,建议使用StringBuffer和StringBuilder来进行操作。另外StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。

标签:10,String,字符,StringBuffer,value,StrIngBuilder,StringBuilder,字符串
From: https://www.cnblogs.com/tim-zuo/p/18622256

相关文章

  • 题解:P11410 闪耀之塔
    题解:P11410闪耀之塔https://www.luogu.com.cn/problem/P11410我们要想讲讲前置知识——蒙哥马利快速幂模求逆元。前置知识逆元定义何为逆元?逆元,又称数论倒数。若整数\(a\)、\(b\)满足同余方程\(a*b=1(mod\n)\),那么\(a\),\(b\)互为模\(n\)意义下的逆元。前置\(......
  • 从键盘上输入10个数,再输入一个数a, 找 a 在这10个数中第一次出现的位置。
     #include<stdio.h> intmain(){  inti,x,a[10];  printf("请输入10个整数:\n");  for(i=0;i<10;i++)    scanf("%d",&a[i]);  printf("请输入要寻找的数字:\n");  scanf("%d",&x);  i......
  • Windows10如何安装OpenSSL并生成证书
    1.安装第三方软件FireDaemonOpenSSL下载地址:适用于MicrosoftWindows的OpenSSL3.4、3.3、3.0LTS、1.1.1LTS二进制文件安装过程中注意勾选“添加到环境变量”。2.进入到安装目录如C:\ProgramFiles\FireDaemonOpenSSL3\bin,确保目录下存在openssl.exe文......
  • PHP 10个最具影响力的新功能
    无论您是经验丰富的专家还是刚刚踏入编程世界的初学者,2024年的PHP更新都将为您带来极大的帮助,优化您的代码,并提升开发效率。让我们一起探索10个最具影响力的新功能,它们将彻底改变您的PHP开发之旅!1、只读属性:只能在初始化时赋值,之后不可修改。class User {  pub......
  • 面试题:int(1)和int(10)有区别吗
    ......
  • dvwa靶场学习—1、VMware16虚拟机安装win10系统
    参考:https://blog.csdn.net/u013097500/article/details/130922242?ops_request_misc=%257B%2522request%255Fid%2522%253A%25229f57538a8985bd22b94ddc3c4206a75e%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=9f57538a8985bd22b94ddc3c4......
  • 【day10】JavaSE基础项目——学生管理系统
    1.项目介绍此项目是JavaSE第一阶段的项目,主要完成学生对象在数组中的增删改查,大家可以在此项目中发挥自己的想象力做完善,添加其他功能等操作,但是重点仍然是咱们前9个模块的知识点2.项目展示2.1.添加功能2.2.查看功能2.3.修改功能2.4.删除功能2.5.退出功能......
  • HTML - 粪海狂蛆(内有100红包!)
    <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD><TITLE>蛆</TITLE><style>body,html{position:absolute;margin:0;padding:0;width:100%;......
  • 毕业设计基于STM32F103C8T6智能小车设计PWM调速、红外循迹、障碍物跟随、超声波避障、
    (页数:61页、字数:14473字)1绪论1.1前言1.2设计任务与要求1.3智能小车硬件设计思路1.3.1智能小车控制板设计思路1.3.2智能小车底板设计思路2单片机的组成及特点2.1单片机的组成2.2单片机的特点2.3STM32F103C8T6单片机介绍2.4STM32F103C8T6单片......
  • 读图数据库实战笔记10图分析
    1. 图分析1.1. 图分析和机器学习(ML)是进一步探索图时要探索的两个最常见领域1.2. 寻路1.2.1. 每一个特定的寻路算法的工作原理都略有不同,并且各有优缺点1.2.2. 测向1.2.2.1. 地理制图工具使用寻路算法的一些变体来提供方向1.2.3. 优化问题1.2.3.1. 寻路算......