当前位置: 首页 > article >正文

Java基础编程练习第31题-String类和StringBuffer类

1.String类        

        是不可变类,即一个String对象所包含的字符串,其内容和大小永远不会被改变,只能对这个字符串进行查找、比较等操作不能添加新的字符,不能改变字符串的长度

2.StringBuffer类

        是可变类,它们所包含的字符串可以进行添加和删除字符的操作。

举个例子:

// 使用 String 类
String str = "Hello";
str += " World"; // 实际上创建了一个新的 String 对象
System.out.println(str); // 输出 "Hello World"

// 使用 StringBuffer 类
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World"); // 修改了原 StringBuffer 对象的内容
System.out.println(sb.toString()); // 输出 "Hello World"

在这个例子里:String类的操作过程和StringBuffer类的操作过程看似相同实则不一样。既:

// String 类的操作过程
String str1 = "Hello"; // 创建一个 String 对象,内容为 "Hello"
String str2 = str1 + " World"; // 创建一个新的 String 对象,内容为 "Hello World"
// 此时,str1 仍然指向 "Hello",而 str2 指向新的字符串 "Hello World"

//在这个例子中,我们首先使用 String 类创建了一个字符串 “Hello”,
然后尝试通过 += 操作符来拼接另一个字符串 " World"。在底层,
这实际上是通过创建一个新的 String 对象来完成的,
原来的 “Hello” 字符串对象没有被修改。
// StringBuffer 类的操作过程
StringBuffer sb = new StringBuffer("Hello"); // 创建一个 StringBuffer 对象,内容为 "Hello"
sb.append(" World"); // 在原有对象上追加 " World",内容变为 "Hello World"
// 此时,sb 仍然是指向同一个 StringBuffer 对象,但其内容已经改变


而对于 StringBuffer 类,
我们创建了一个初始内容为 “Hello” 的 StringBuffer 对象。
当我们调用 append 方法来拼接 " World" 时,
这个操作是在原有对象上进行的,没有创建新的对象。
这意味着 StringBuffer 对象的内容被修改了,而不是替换。


http://www.kler.cn/a/586943.html

相关文章:

  • 【八股文】ArrayList和LinkedList的区别
  • 【Python 语法】排序算法
  • 个人博客系统测试报告
  • C++程序设计语言笔记——抽象机制:模板
  • eclipse-mosquitt之docker部署安装与使用
  • 现在有分段、句子数量可能不一致的中英文文本,如何用python实现中英文对照翻译(即每行英文对应相应的中文)
  • MySQL事务及索引复习笔记
  • Qt从入门到入土(十) -数据库操作--SQLITE
  • JAVA EE(10)——线程安全——synchronized JUC(java.util.concurrent) 的常见类 线程安全的集合类
  • 机器学习编译器(二)
  • Java中的访问修饰符有哪些
  • Swagger 从 .NET 9 中删除:有哪些替代方案
  • 洛谷 P4933 大师
  • LRU(最近最少使用)算法实现
  • 探索Maas平台与阿里 QWQ 技术:AI调参的魔法世界
  • 车载软件刷写工具vFlash --- 自动化接口(Automation API)应用简介
  • 德语A1学习
  • 批量ip反查域名工具
  • 删除有序数组中的重复项(26)
  • [网络] 网络基础概念--socket编程预备