Java——StringBuilder和StringBuffer

目录

一.StringBuilder的介绍

二.面试题

1.String、StringBuffer、StringBuilder的区别

2.以下总共创建了多少个String对象【前提不考虑常量池之前是否存在】


一.StringBuilder的介绍

由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。这两个类大部分功能是相同的,这里介绍StringBuilder常用的一些方法,其它需要用到了大家可参阅:

Java Platform SE 8

public static void main(String[] args) {StringBuilder sb1 = new StringBuilder("hello");StringBuilder sb2 = sb1;// 追加:即尾插-->字符、字符串、整形数字sb1.append(' ');                  // hellosb1.append("world");              // hello worldsb1.append(123);                  // hello world123System.out.println(sb1);          // hello world123System.out.println(sb1 == sb2);   // trueSystem.out.println(sb1.charAt(0));   // 获取0号位上的字符 hSystem.out.println(sb1.length());    // 获取字符串的有效长度14System.out.println(sb1.capacity());  // 获取底层数组的总大小sb1.setCharAt(0, 'H');     // 设置任意位置的字符 Hello world123sb1.insert(0, "Hello world!!!");         // Hello world!!!Hello world123System.out.println(sb1);System.out.println(sb1.indexOf("Hello"));        // 获取Hello第一次出现的位置System.out.println(sb1.lastIndexOf("hello"));  // 获取hello最后一次出现的位置sb1.deleteCharAt(0);                             // 删除首字符sb1.delete(0,5);                                 // 删除[0, 5)范围内的字符String str = sb1.substring(0, 5);         // 截取[0, 5)区间中的字符以String的方式返回System.out.println(str);sb1.reverse();                      // 字符串逆转str = sb1.toString();               // 将StringBuffer以String的方式返回System.out.println(str);}

从上述例子可以看出:String和StringBuilder最大的区别在于String的内容无法修改,StringBuilder的内容可以修改。频繁修改字符串的情况考虑使用StringBuilder。

注意:String和StringBuilder类不能直接转换。如果要想互相转换,可以采用如下原则: String变为StringBuilder: 利用StringBuilder的构造方法或append()方法 StringBuilder变为String: 调用toString()方法。

二.面试题

1.String、StringBuffer、StringBuilder的区别

  • String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.
  • StringBuffer与StringBuilder大部分功能是相似的
  • StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作

2.以下总共创建了多少个String对象【前提不考虑常量池之前是否存在】

String str = new String("ab");   // 会创建多少个对象
String str = new String("a") + new String("b");  // 会创建多少个对象

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业智能名片小程序:AI智能跟进功能助力精准营销新篇章

在数字化浪潮的推动下,企业营销手段不断迭代升级。如今,一款集手机号授权自动获取、智能提醒、访客AI智能跟进及客户画像与行为记录于一体的企业智能名片小程序,正以其强大的AI智能跟进功能,助力企业开启精准营销的新篇章。 通过深…

奥比中光Astra RGBD ROS1配置(乐视RGBD)

早年买了一款乐视RGBD一直落灰,最近做一个机器人项目想重新使用起来。发现官方给的RGBD包和github上面的ros_astra_camera包并不能很好的驱动这款相机。研究了一下进行补足。 最终的结果是彩色,红外以及深度退昂均能实时读取。具体过程如下: …

【docker】安装openjdk

查看可用的 openjdk版本 docker hub 查看地址:https://hub.docker.com/_/openjdk 此图片已被正式弃用,建议所有用户尽快找到并使用合适的替代品。其他官方形象替代品的一些例子(按字母顺序列出,没有有意或暗示的偏好)…

深度学习之视觉特征提取器——LeNet

LeNet 引入 LeNet是是由深度学习巨头Yann LeCun在1998年提出,可以算作多层卷积网络在图像识别领域的首次成功应用。我们现在通常说的LeNet是指LeNet-5,最早的LeNet-1在1988年即开始研究,前后持续十年之久。但是,受限于当时计算机…

将聊天记录与 LangChain 集成:为提升对话机器人体验提供了一种变革性的解决方案

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总…

PLC通过Modbus转Profinet网关连接变频器与电机通讯

Modbus转Profinet网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。Modbus转Profinet网关可提供单个或多个RS485接口,PLC作为控制中枢,变频器作为控制电机转速,通过Modbus转Profinet网关&#…

Leetcode—1041. 困于环中的机器人【中等】

2024每日刷题&#xff08;121&#xff09; Leetcode—1041. 困于环中的机器人 实现代码 class Solution { public:bool isRobotBounded(string instructions) {int x 0;int y 0;int d 0;vector<vector<int>> direction{{0, 1}, {1, 0}, {0, -1}, {-1, 0}};for…

nginx--

命令 选项说明 帮助: -? -h 使用指定的配置文件: -c 指定配置指令:-g 指定运行目录:-p 测试配置文件是否有语法错误:-t -T 打印nginx的版本信息、编译信息等:-v -V 发送信号: -s 示例: nginx -s reload 信号说明 立刻停止服务:stop,相当于信号SIGTERM,SIGINT 优雅的停止服务:…

图像预处理工具_CogImageFileTool

CogImageFileTool工具可以用来将单张图片或idb格式的图片数据库读入内存。也可使用CoglmageFileTool工具将图片插入到.idb数据库里。 添加工具 参数介绍 文件名 写入模式 读取模式 删除

Linux基础——Linux开发工具(上)_vim

前言&#xff1a;在了解完Linux基本指令和Linux权限后&#xff0c;我们有了足够了能力来学习后面的内容&#xff0c;但是在真正进入Linux之前&#xff0c;我们还得要学会使用Linux中的几个开发工具。而我们主要介绍的是以下几个&#xff1a; yum, vim, gcc / g, gdb, make / ma…

从曝光到安装:App传参安装的关键步骤与数据指标

随着移动互联网的普及&#xff0c;手游市场日益繁荣&#xff0c;手游推广方式也日新月异。在这个竞争激烈的市场中&#xff0c;如何有效地推广手游&#xff0c;吸引更多的用户&#xff0c;成为了开发者和广告主关注的焦点。而Xinstall作为国内专业的App全渠道统计服务商&#x…

Fast Bilateral Filteringfor the Display of High-Dynamic-Range Images

1 Title Fast Bilateral Filtering for the Display of High-Dynamic-Range Images(Fredo Durand and Julie Dorsey)【SIGGRAPH 02】 2 Conclusion This paper presents a new technique for the display of high-dynamic-range images, which reduces the contrast while pre…