java学习第二十一课
暑期自学第二十一课,本节课学习 String、StringBuilder、StringBuffer 字符串相关内容。字符串是日常编码高频用到的类型,之前简单接触过,这节课深入理清三者区别,纠正了不少之前模糊的认知。
String 字符串一旦创建,内容不能修改,所谓拼接字符串本质是产生新字符串对象,频繁拼接会制造大量闲置对象,占用内存。如果需要频繁修改字符串,就不适合直接用 String。
StringBuilder 和 StringBuffer 支持直接修改字符内容,不会频繁创建新对象。二者功能大体一致,区别在于 StringBuilder 线程不安全,运行速度更快;StringBuffer 线程安全,速度稍慢,平时练习大部分场景优先使用 StringBuilder。
练习过程中遇到不少问题。一开始写循环拼接依旧习惯性直接用 “+” 连接字符串,没有意识到效率问题;分不清三者适用场景。另外容易混淆 == 和 equals,String 使用 == 比较的是地址,想要对比文字内容必须使用 equals 方法,这个知识点之前接触过,写代码时偶尔还是粗心出错。还有字符串空值、空串的判断,经常忽略空指针风险。
简单总结使用场景:字符串内容很少改动,选用 String;需要频繁拼接、修改字符串,单线程环境使用 StringBuilder;多线程并发操作字符串时,再考虑 StringBuffer。
本节课知识点偏向实用,没有难懂的逻辑,更多是编码习惯的培养。学会合理选择字符串类,能够优化程序性能。接下来我会多练习字符串拼接案例,牢记三者特性,预习下一节集合相关知识。

浙公网安备 33010602011771号