StringBuilder, Stringbuffer,StringJoiner

news2024/11/15 17:57:36
StringBuilder

StringBuilder 代表可变字符串对象,相当于是一个容器,里面装的字符串是可以改变的,就是用来操作字符串的。
StringBuilder 比String更适合做字符串的修改操作,效率更高,代码更加的简洁。
在这里插入图片描述

public class HelloWorld {
    public static void main(String[] args) {
        StringBuilder s1 = new StringBuilder();
        StringBuilder s2 = new StringBuilder("abc");
        s1.append("abc");
        s1.append("123");
        s1.append("哈哈哈");
        s1.append(true);
        System.out.println(s1);//abc123哈哈哈true;

        s2.append("123").append("哈哈哈").append(true);
        System.out.println(s2);//abc123哈哈哈true;

        s1.reverse();//字符串反转
        System.out.println(s1);//eurt哈哈哈321cba;

        System.out.println(s1.length());//13 返回字符串的长度

        System.out.println(s1.toString());//转为String类型

    }
}

StringBuilder 是可变的,对字符串的修改不会产生新的对象

public class HelloWorld {
    public static void main(String[] args) {
        StringBuilder s1 = new StringBuilder();
        System.out.println(System.identityHashCode(s1));//1324119927
        s1.append("abc");
        s1.append("123");
        s1.append("哈哈哈");
        System.out.println(System.identityHashCode(s1));//1324119927



    }
}

变量改变前后对像的哈希地址并没有发生改变,表明修改是在原对象上进行的

StringBuilder 是非线程安全的,这意味着在多线程环境中同时访问和修改它可能会导致数据不一致。

StringBuffer

StringBuffer 是一个线程安全的可变字符串类,所有的方法都是同步的。这意味着在多线程环境中可以安全地使用 StringBuffer。
比 StringBuilder,性能稍差,因为同步机制增加了开销。
其构造器和方法与StringBuilder 类似。

StringJoiner

StringJoiner 是 Java 8 引入的一个类,用于构建由定界符分隔的字符串序列。它提供了一种方便的方式来连接字符串,并允许指定前缀和后缀。
在这里插入图片描述

public class HelloWorld {
    public static void main(String[] args) {
        StringJoiner s = new StringJoiner(",","[","]");
        s.add("123");
        s.add("hhh");
        s.add("哈哈哈");
        System.out.println(s);//[123,hhh,哈哈哈]

        System.out.println(s.length());//13


    }
}
总结

StringBuilder:适用于单线程环境中需要频繁修改字符串的场景,具有高效的性能。
StringBuffer:适用于多线程环境中需要频繁修改字符串的场景,线程安全但性能稍逊于 StringBuilder。
StringJoiner:适用于需要构建带定界符的字符串序列的场景,提供了简洁的 API 来处理前缀、后缀和分隔符。

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

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

相关文章

职升网:咨询工程师考试科目难不难?

咨询工程师考试包含四个科目,它们分别是《宏观经济政策与发展规划》、《工程项目组织与管理》、《项目决策分析与评价》以及《现代咨询方法与实务》。每个科目都有其独特的难度和特点。 《宏观经济政策与发展规划》:这一科目被认为是备考中相对容易的科…

ubuntu20.04支持win10远程桌面连接

1. 安装xrdp sudo apt install xrdp 2. 检查xrdp状态 sudo systemctl status xrdp 要处于running状态 3.(若为Ubuntu 20)添加xrdp至ssl-cert sudo adduser xrdp ssl-cert 4. 重启服务 sudo systemctl restart xrdp 5. window 远程桌面连接&am…

AVL树超详解上

前言 学习过了二叉树以及二叉搜索树后(不了解二叉搜索树的朋友可以先看看这篇博客,二叉搜索树详解-CSDN博客),我们在一般情况下对于二叉搜索树的插入与查询时间复杂度都是O(lgN),是十分快的,但是在一些特殊…

太速科技-基于XCVU9P+ C6678的8T8R的无线MIMO平台

基于XCVU9P C6678的8T8R的无线MIMO平台 一、板卡概述 板卡基于TI TMS320C6678 DSP和XCVU9P高性能FPGA,FPGA接入4片AD9361 无线射频,构建8输入8输出的无线MIMO平台,丰富的FPGA资源和8核DSP为算法验证和信号处理提供强大能力。 二…

有人泼冷水:为什么AI基础设施创业如此艰难?

最近,Adept AI 宣布被亚马逊收购,这印证了 JOHN HWANG(前 AWS 生成式 AI 架构师,摩根士丹利交易主管)对未来的判断。于是他写了这篇文章,表达了对 AI 基础设施这个领域创业的隐忧。认为“AI 基础设施创业公…

有观点认为NVIDIA中国特供GPU H20也将面临禁售

为了能将GPU卖给中国市场,NVIDIA一直在魔改各种特供版,但是每每遭遇美国政府加码,随时都会被再次禁售,H20又要面临同样的命运。NVIDIA H20只配备了78组SM单元,相当于H100 SXM版本的六成、PCIe 5.0版本的接近七成&#…

在qt的c++程序嵌入一个qml窗口

//拖拽一个QQuickWidget c端和qml通信的桥梁 找到qml的main.qml的路径 ui->quickWidget->setSource(QUrl::fromLocalFile("../../../code/main.qml"));// QML 与 Qt Widgets 通信//窗口就成了一个类实例对象pRoot (QObject*)ui->quickWidget->rootObje…

centos8 一键安装nginx指定版本

centos 8 的源里面已经有nginx,支持命令直接安装 dnf install nginx -y但默认安装 1.14 版本,版本较老,存在安全问题。在官网找到指定版本rpm包,可直接安装 http://nginx.org/packages/centos/8/x86_64/RPMS/这里选择1.18&#…

python—爬虫爬取视频样例

下面是一个使用Python爬虫爬取视频的基本例子。创建一个Python爬虫来爬取视频通常涉及到几个步骤:发送HTTP请求、解析网页内容、提取视频链接、下载视频文件。 import jsonimport requests from lxml import etreeif __name__ __main__:# UA伪装head {"User…

一款国外开发的高质量WordPress下载站模板主题

5play下载站是由国外站长开发的一款WordPress主题,主题简约大方,为v1.8版本, 该主题模板中包含了上千个应用,登录后台以后只需要简单的三个步骤就可以轻松发布apk文章, 我们只需要在WordPress后台中导入该主题就可以…

《简历宝典》17 - 简历中“技术能力”,如何丰满且有层次,前端篇

这一节开始对技术能力模块做讲解,我们身边的这些互联网IT从业者们,前端开发、Java开发、软件测试又或者是其他职位的开发者们,技术能力这个模块是绕不过去的,从简历上看,这个模块体现了我们之前软件工作生涯中的技术功…

二、C#数据类型

本文是网页版《C# 12.0 本质论》第二章解读。欲完整跟踪本系列文章,请关注并订阅我的Essential C# 12.0解读专栏。 前言 数据类型(Data Type)是一个很恼人的话题。 似乎根本没必要对数据类型进行展开讲解,因为人人都懂。 但是…

Ubuntu 24.04 LTS Noble安装Docker Desktop简单教程

Docker 为用户提供了在 Ubuntu Linux 上快速创建虚拟容器的能力。但是,那些不想使用命令行管理容器的人可以在 Ubuntu 24.04 LTS 上安装 Docker Desktop GUI,本教程将提供用于设置 Docker 图形用户界面的命令…… Docker Desktop 是一个易于使用的集成容…

IVI(In-Vehicle Infotainment,智能座舱的信息娱乐系统)

IVI能够实现包括三维导航、实时路况、辅助驾驶等在线娱乐功能。 IVI人机交互形式(三板斧):声音、图像、文字 IVI人机交互媒介I(四件套):中控屏幕(显示、触控)、仪表显示、语言、方…

Python爬虫(2) --爬取网页页面

文章目录 爬虫URL发送请求UA伪装requests 获取想要的数据打开网页 总结完整代码 爬虫 Python 爬虫是一种自动化工具,用于从互联网上抓取网页数据并提取有用的信息。Python 因其简洁的语法和丰富的库支持(如 requests、BeautifulSoup、Scrapy 等&#xf…

规范:前后端接口规范

1、前言 随着互联网的高速发展,前端页面的展示、交互体验越来越灵活、炫丽,响应体验也要求越来越高,后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域深耕细作。 然…

SpringCloud极限速通版

1.SpringCloud概述 1.1 什么是微服务 1.1.1 单体架构 业务所有功能都打包在一个war包或jar包,这种方式就是单体架构,单体架构的应用就是单体应用。这种架构开发简单,部署简单,一个项目包含所有功能;省去了多个项目之…

图片上传成功却无法显示:静态资源路径配置问题解析

1、故事的背景 最近,有个学弟做了一个简单的后台管理页面。于是他开始巴拉巴拉撘框架,写代码,一顿操作猛如虎,终于将一个简单的壳子搭建完毕。但是在实现功能:点击头像弹出上传图片进行头像替换的时候,卡壳…

力扣高频SQL 50 题(基础版)第一题

文章目录 力扣高频SQL 50 题(基础版)第一题1757.可回收且低脂的产品题目说明思路分析实现过程准备数据:实现方式:结果截图: 力扣高频SQL 50 题(基础版)第一题 1757.可回收且低脂的产品 题目说…

昇思25天学习打卡营第14天 | SSD目标检测

探索SSD目标检测算法 在深入学习SSD(Single Shot MultiBox Detector)目标检测算法的过程中,我对现代计算机视觉中的目标检测技术有了更加深入的理解。SSD作为一种有效的单阶段目标检测算法,它在准确性和检测速度之间取得了良好的…