java StringBuffer和StringBuilder

news2024/11/22 6:32:46

目录

  • 一、概述
  • 二、StringBuffer和StringBuilder区别
  • 三、StringBuffer使用

一、概述

String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。
StringBuffer是使用缓冲区的,本身也是操作字符串的,但与String类不同,String类中的内容一旦声明之后不可改变,改变的只是其内存地址的指向,而StringBuffer中的内容是可以改变的 。

二、StringBuffer和StringBuilder区别

  • StringBuffer:线程安全,StringBuilder:线程不安全。因为 StringBuffer 的所有公开方法都是synchronized 修饰的,而 StringBuilder 并没有 synchronized 修饰。StringBuffer 每次获取 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串。StringBuilder 则每次都需要复制一次字符数组,再构造一个字符串。
  • stringbuffer和stringbuilder的区别在于:线程安全不同、缓冲区不同、性能不同。StringBuffer 适用于用在多线程操作同一个 StringBuffer 的场景,如果是单线程场合 StringBuilder 更适合。

三、StringBuffer使用

本篇文章只讲解StringBuffer的使用,因为StringBuffer和StringBuilder的方法都是一模一样的
常用方法:

方法作用
length求字符串长度
capacityStringBuffer的容量,默认是16
append添加元素
insert插入元素
deleteCharAt根据下标删除元素
delete删除元素,例:delete(0,2) 包含头不含尾
replace替换元素
reverse反转元素
substring字符串截取

示例代码:

public class test {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("hello");
        System.out.println(sb.length());
        //初始容量+字符串的length
        System.out.println(sb.capacity());
        //添加元素
        sb.append("test");
        //插入元素,在索引1的位置插入元素b
        sb.insert(1,"b");
        System.out.println(sb);
        //替换元素,把b替换成a
        sb.replace(1,2,"a");
        //反转元素
        sb.reverse();
        //截取字符串
        sb.substring(0,5);
        //根据下标删除元素
        sb.deleteCharAt(1);
        //删除所有元素
        sb.delete(0,sb.length());//清空缓存区
    }
}

StringBuilder和它的方法一模一样。
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工作2年,连接口自动化测试用例怎么设计都不知道?你好意思吗

目录 前言 接口信息来源 单接口测试 场景逻辑验证 异常测试 尽量自动化 独立性 可重复性 合理的断言 公共参数 数据集合 数据模板 前言 说到自动化测试,或者说接口自动化测试,多数人的第一反应是该用什么工具,比如:Py…

FTP-----局域网内部传输文件(1)

在日常工作中,如果需要跨设备的传输文件,您需要借助USB数据线或者借助应用实现无线互联,将所需文件传输到对应设备,这一来一去,花费的时间与精力变多了,那么,怎么实现不使用第三方软件来实现跨设…

【MySQL】表的操作和数据类型

前言 大家好呀~,今天继续我们的mysql学习! 本篇博客主要记录Mysql创建完数据库后,要在数据库中创建表,那么首先需要定义表的结构约束(SQL-DDL)等,这篇主要介绍基础定义表的结构(创建…

学习React与Next.js过程中的疑惑

学习React与Next.js过程中的疑惑1、为什么React中函数作为props的时候,会出现无限调用的情况,而把函数放在箭头函数中就可以解决呢?2、next.js与node.js有什么区别?3、什么是快速刷新?4、Hooks出现的原因是什么&#x…

2020年11月信息系统项目管理师真题(综合+案例)

请点击↑关注、收藏,本博客免费为你获取精彩知识分享!有惊喜哟!! 1、( )使系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的…

【从零开始学Skynet】实战篇《球球大作战》(十二):场景代码设计(上)

场景服务会处理绝大部分的游戏逻辑。新建service/scene/init.lua,开始编写相关代码。1、Ball类 场景中包含小球和食物这两种对象,先看看小球的实现。代码如下所示:--球 local balls {} --[playerid] ballfunction ball()local m {playerid…

项目打包记录提交id

某天上午正在摸鱼的小邓,突然被领导拉倒一个2年前项目的现场问题沟通群,说是现场数据无法入库,需要排查,奈何不知道版本,无奈的小邓值得用时间记录一个点一个点的从gitlab中查找,为了防止后续提供到现场的版…

【蓝桥杯嵌入式】蓝桥杯嵌入式2023年第十四届省赛真题解答

目录 0 题目介绍 1 题目分析 2 Cubemx配置 4 代码 5 效果显示 0 题目介绍 具体要求如下图 1 题目分析 拿到题目咋一看,就是基本操作,实际做起来一堆定时器操作,很容易把人绕晕。 首先看看需要用到的外设 1. GPIO(key/led) 2.LCD 3…

SpringCloud:ElasticSearch之RestClient查询文档

文档的查询同样适用RestHighLevelClient对象,基本步骤包括: 1)准备Request对象2)准备请求参数3)发起请求4)解析响应 1.快速入门 我们以match_all查询为例 1.1.发起查询请求 代码解读: 第一步…

Downie4如何使用?Downie4最常用的几种下载方法

Downie 4是一款流行的 Mac 视频下载工具,可让您从各种网站下载视频,包括 YouTube、Vimeo、Twitter 等。但是Downie有多少种下载视频的方法你知道吗?接下来为大家带来最常用的几种下载方法,欢迎大家点赞收藏! 拖链接下载…

〖Python网络爬虫实战①〗- HTTP原理

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费…

道路病害识别领域创新产品RADSDS系统让道路检测更高效更实用

自从我国公路总里程数居世界第一,道路养护成为交通运维工作的重要环节。公路养护维修工作的开展,离不开对公路客观状况的检测。以往,我国依靠人工步行完成这项工作,不但干扰公路上车辆的正常通行,对检测人员安全不利&a…

【Linux】来写一个udp的服务端+客户端

来写一个udp的代码 1.socket编程接口 // 创建 socket 文件描述符 (TCP/UDP, 客户端 服务器) int socket(int domain, int type, int protocol); // 绑定端口号 (TCP/UDP, 服务器) int bind(int socket, const struct sockaddr *address,socklen_t address_len); // 开始…

个人邮箱与企业邮箱的区别有哪些?如何选择?

很多用户不了解企业邮箱,认为使用个人邮箱完全可以满足需求,其实这都是错误的观点,企业邮箱不同于个人邮箱,企业邮箱更适于商务应用的邮箱。今天就简单的做个对比。 个人邮箱与企业邮箱的区别: 1、企业形象 企业邮箱&…

STC单片机DS1307+ssd1306 oled时钟显示

STC单片机DS1307+ssd1306 oled时钟显示 📌相关篇《STC单片机DS1302+ssd1306 oled时钟显示》📍《STC单片机对DS1307读写操作》✨效果演示: 🌿实验对象:STC12C5A60S2🌿屏幕型号:I2C ssd1306 0.96“ oled🌿晶振频率:11.059MHz🌿串口波特率:9600📜串口打印读取信…

rk3568 点亮HDMI

rk3568 Android11/12 适配HDMI HDMI(High-Definition Multimedia Interface)是一种数字化音视频接口标准,用于连接高清电视、电脑、游戏机、蓝光播放器等设备。它是由HDMI联盟(HDMI Licensing, LLC)制定的&#xff0c…

奥威BI数据可视化大屏分享|多场景、多风格

数据可视化大屏一般应用在品牌推广展示、商务交流、数据分析决策、数据监控等场景,由此催生出各种不同风格的BI数据可视化大屏设计。下面就从奥威BI软件的BI报表模板中截取几个有着不同风格,起着不同作用的BI数据可视化大屏报表,一起来了解一…

【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)

前言 哒哒~时隔好久终于继续出论文带读了,这次回归当然要出一手王炸呀——没错,今天我们要一起学习的就是传说中的Transformer!在2021年Transformer一经论文《Attention is All You Need》提出,就如龙卷风一般震惊学术界&#xf…

关于ROS机器人-文心一言和CatGPT怎么看-

交流截图: 文字版本如下(W-文心;C-猿如意): 如何通过蓝桥云课学习ROS机器人? W: 如果你想通过蓝桥云课学习ROS机器人,可以按照以下步骤进行: 确认ROS机器人的版本和教…

【记录】笔记本新加SSD,重装系统win10,再装双系统ubuntu18.04

记录一下,希望下次装系统可以来的晚一点一、前言二、换SSD三、装Windows1.安装系统2.删除多余系统3.遇到问题:无法关机4.改注册表,开不开机,黑屏有鼠标三、装ubuntu1.安装完,设置root2.更新源3.时间设置4.win和ubuntu共…