String、StringBuffer、StringBuilder类

最近在复习 Java 基础的时候,看到了 String 这块的内容,我突发奇想,可以将 String、StringBuffer、StringBuilder 这些知识点整合在一起记忆。我之前背的那个答案其实有点琐碎,而且不太好理解,还繁杂,所以我基本今天背了明天忘,后天忘的一干二净。就像这种:

所以我看了几篇关于String、StringBuffer、StringBuilder 的相关文章,然后写了一个我自己的回答,这样就不容易忘了。

我的回答思路

String、StringBuffer、StringBuilder 都是处理字符串的3个类,这3个类各有优缺点,在实际中,我们可以根据自己的情况来选择用哪个类。

首先是 String 类。如果你在 String 类中创建一个对象,那么这个对象是不可变的。也就是说,你一旦想修改这个对象(字符串),那就没办法了,你就只能在 String pool 中新创建一个对象了。

但是 StringBuffer 和 StringBuilder 就不同。StringBuffer 类和 StringBuilder 类创建的对象是可变的。这就意味着你可以再原位置上对数据进行修改,而不用像 String 类那样要在 String pool 中创建新对象。StringBuffer 类和 StringBuilder 类其实也有区别,StringBuffer 类的大部分方法都加锁了,保证了多线程的安全性。而 StringBuilder 类的方法是不加锁的,所以执行效率比 StringBuffer类高一点。

心得

我之前死记硬背这些知识点,所以理解不了,然后觉得String的知识很多很复杂。现在来看,我其实是不想动脑子,就是无脑记忆,这种的话记了容易忘,而且根本理解不了。当我真正跳出舒适圈,用脑子去自己思考,总结,内化后,我就会发现这些知识很简单,没我之前想的那么复杂。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PS从入门到精通视频各类教程整理全集,包含素材、作业等(5)

PS从入门到精通视频各类教程整理全集,包含素材、作业等 最新PS以及插件合集,可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制,今天先分享到这里,后续持续更新 初寒调色案例及练习图 等文件 https://www.alipan.…

Android Studio 识别不到物理机设备

问题 Android Studio 识别不到物理机设备 详细问题 笔者进行Android 项目开发,之前一直可以连接上物理机设备,可能由于笔者对于驱动程序进行更新修改的原因,突然无法连接物理机设备。搜索无数资料,使用无数解决方案&#xff08…

src挖掘技巧总结分享

src挖洞技术分享 src推荐刚入门的新手首选公益src如漏洞盒子、补天src,因为漏洞盒子收录范围广,只要是国内的站点都收入,相比其它src平台挖掘难度非常适合新手。后续可以尝试先从一些小的src厂商入手。 首先是熟能生巧,我一开始挖…

spring(3)

spring6 1、bean生命周期1.1 bean生命周期之五步1.2bean生命周期之七步1.3 bean生命周期之十步1.4 bean作用域与管理周期 2、把自己new的对象交给spring管理3、Bean循环依赖3.1 setsingleton3.2 构造singleton3.3 propotypeset注入3.4 bean循环依赖源码分析:3.5 常见…

图论模板详解

目录 Floyd算法 例题:蓝桥公园 Dijkstra算法 例题:蓝桥王国 SPFA算法 例题:随机数据下的最短路问题 总结 最小生成树MST Prim算法 Kruskal算法 例题:聪明的猴子 Floyd算法 最简单的最短路径算法,使用邻接…

BGP联盟、对等体组、按组打包

BGP联盟 将大的AS划分为几个子AS(成员AS),每个子AS内部建立全连接的IBGP邻居,子AS之间建立EBGP邻接关系。 联盟AS:大AS,就是常说的AS号,一般使用公有AS号。 成员AS:小AS&#xff…

MongoDB 启动异常

Failed to start up WiredTiger under any compatibility version. 解决方案: 删除WiredTiger.lock 和 mongod.lock两个文件,在重新启动。回重新生成新的文件。

Unicode在线编码和解码工具推荐(实用)

Unicode在线编码 - Unicode编码工具 - Unicode在线生成 - Unicode在线解码 - WGCLOUD

研发效能·创享大会—IDCF五周年专场

时光流转,IDCF即将迎来五周年的庆典。在这个意义非凡的时刻,我们精心筹备了一场盛大的聚会【研发效能创享大会—IDCF五周年专场】。 IDCF自2019年成立以来,携手百余位技术领头人共同打造DevOps技术学习平台,与30万社群伙伴联动&a…

数据类型和类型检测

Data Type And Type Checking 1.编程语言中的数据类型 类型和变量 一个类型是一系列值的集合,这些集合可以抽象出一个相同的特点,并且可以相互实现计算 例如: 布尔类型:true or false整形:1,2,3…浮点数类型&#xf…

OM6650AM支持蓝牙5.1协议栈与2.4GHz私有协议的双模无线连接SoC芯片

OM6650AM是一款超低功耗、同时支持蓝牙5.1协议栈与2.4GHz私有协议的双模无线连接SoC芯片,采用4.0 mm x 4.0 mm QFN32封装,具有丰富的资源,极低的功耗,优异的射频性能,可广泛应用于车载数字钥匙模组、胎压检测、PKE钥匙…

【教程】Flutter 应用混淆

在移动应用开发中,保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具,帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆,并提供了相关的操作步骤和注意事项。 📝 摘要 本…

YOLOv9改进策略 :主干优化 | 无需TokenMixer也能达成SOTA性能的极简ViT架构 | CVPR2023 RIFormer

💡💡💡本文改进内容: token mixer被验证能够大幅度提升性能,但典型的token mixer为自注意力机制,推理耗时长,计算代价大,而RIFormers是无需TokenMixer也能达成SOTA性能的极简ViT架构 ,在保证性能的同时足够轻量化。 💡💡💡RIFormerBlock引入到YOLOv9,多个数…

C语言第三十八弹---编译和链接

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 编译和链接 1、翻译环境和运行环境 2、翻译环境 2.1、预处理(预编译) 2.2、编译 2.2.1、词法分析 2.2.2、语法分析 2.2.3、语义分…

【Linux】自定义协议+序列化+反序列化

自定义协议序列化反序列化 1.再谈 "协议"2.Cal TCP服务端2.Cal TCP客户端4.Json 喜欢的点赞,收藏,关注一下把! 1.再谈 “协议” 协议是一种 “约定”。在前面我们说过父亲和儿子约定打电话的例子,不过这是感性的认识&a…

YoloV8改进策略:BackBone改进|GCNet(独家原创)|附结构图

摘要 本文使用GCNet注意力改进YoloV8,在YoloV8的主干中加入GCNet实现涨点。改进方法简单易用,欢迎大家使用! 论文:《GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond》 非局部网络(NLNet)通过为每个查…

大模型日报20240401

大模型实时打《街霸》捉对PK,GPT-4居然不敌3.5,新型Benchmark火了 链接:https://news.miracleplus.com/share_link/22340 让大模型直接操纵格斗游戏《街霸》里的角色,捉对PK,谁更能打?GitHub上一种你没有见…

隧道烘箱在线粒子监测系统解决方案

关于隧道烘箱定义 隧道烘箱是一种采用长箱体热风循环以及远红外干燥方式进行干燥的设备。它主要是为了满足产量高、效率要求高的烘干干燥需求而设计的。在计算机系统的监控下,物品随输送带的输送依次进入隧道烘箱的预热区、高温灭菌区(温度≥5min&#x…

C++ | Leetcode C++题解之第1题两数之和

题目&#xff1a; C 题解&#xff1a; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> hashtable;for (int i 0; i < nums.size(); i) {auto it hashtable.find(target - nums[i]);if (it …

4.机器学习-十大算法之一线性回归算法(LinearRegression)案例讲解

机器学习-十大算法之一线性回归算法案例讲解 一摘要二个人简介三什么是线性回归四LinearRegression使用方法五糖尿病数据线性回归预测1.数据说明2.导包3.导入数据4.脱敏处理5.抽取训练数据和预测数据6.创建模型7.预测8.线性回归评估指标9.研究每个特征和标记结果之间的关系.来分…