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

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 对象的内容被修改了,而不是替换。

相关文章:

  • 什么是 slot-scope?怎么理解。
  • 平安养老险深圳分公司积极开展2025年“3·15”金融消费者权益保护教育宣传活动
  • 19.如何使用 pandas 处理大型 Excel 文件:并行读取工作表
  • Spark 中创建 DataFrame 的2种方式对比
  • 【统计学相关笔记】抽样基本定理的证明
  • Linux与深入HTTP序列化和反序列化
  • 【LeetCode】622、设计循环队列
  • LuaJIT 学习(4)—— FFI 语义
  • JavaScript进阶篇:二、 对象与面向对象编程
  • 组合Ⅲ 力扣216
  • 卫语句优化多层if else嵌套
  • Typora最新版破解教程
  • 最新版VMware 17.6.3安装包分享
  • 功耗电流和耗电量的获取
  • 大数据 spark hive 总结
  • react(一):特点-基本使用-JSX语法
  • 【大模型(LLMs)RAG 检索增强生成 面经】
  • 【HTML】二、列表、表格
  • 【JAVA】七、基础知识“if+switch+循环结构”详细讲解~简单易懂!
  • Trae:与AI结伴,开启编程新体验
  • 美财长称关税战升级的责任在中方,外交部:关税战、贸易战没有赢家
  • 发布亮眼一季度报后,东阿阿胶股价跌停:现金流隐忧引发争议
  • 上海74岁老人宜春旅游时救起落水儿童,“小孩在挣扎容不得多想”
  • 从腰缠万贯到债台高筑、官司缠身:尼泊尔保皇新星即将陨落?
  • 葡萄牙、西班牙发生大范围停电
  • 贸促会答澎湃:5月22日将举办2025年贸易投资促进峰会