Java日志第26天 2020.7.31
StringBuilder类
String字符串是常量,他们的值在创建之后便不能修改
字符串的底层是一个final修饰的数组,所以不能改变其值(public final byte value[])
所以当进行字符串的加减时,会创建多个字符串,占用内存使得效率低下
而StringBuilder类会创建字符串缓冲区,可以提高字符串的操作效率。
它的底层也是一个数组,但是没有被final修饰,所以可以改变长度(byte[] value = new byte[16])
构造方法
StringBuilder类有两个常用的构造方法:
1.StringBuilder() :构造一个不带任何字符的字符串生成器,其初始容量为16个字符
public class Demo01StringBuilder { public static void main(String[] args) { StringBuilder bu1 = new StringBuilder(); System.out.println("bu1 = "+bu1); } }
结果如下:
2.StringBuilder(String str) :构造一个字符串生成器,其初始化为指定的字符串内容
public class Demo01StringBuilder { public static void main(String[] args) { StringBuilder bu1 = new StringBuilder("abc"); System.out.println("bu1 = "+bu1); } }
常用方法
1.public StringBuilder append() :添加任意类型的字符串你形式,并返回当前对象自身
public class Demo01StringBuilder { public static void main(String[] args) { StringBuilder bu1 = new StringBuilder(); StringBuilder bu2 = bu1.append("abc"); System.out.println("bu1 = "+bu1); System.out.println("bu2 = "+bu2); //判断bu1与bu2的地址值是否相同 System.out.println(bu1 == bu2); } }
结果如下:
由上述程序结果可知,append方法会将bu1的地址赋给bu2,所以此方法也可以直接调用。
public class Demo01StringBuilder { public static void main(String[] args) { StringBuilder bu1 = new StringBuilder(); bu1.append("abc"); bu1.append(1); bu1.append(8.5); bu1.append("中国"); System.out.println(bu1); } }
对于返回值是一个对象的方法,可以继续调用,称为链式调用
public class Demo01StringBuilder { public static void main(String[] args) { StringBuilder bu1 = new StringBuilder(); bu1.append("abc").append(1).append(8+5).append("中国"); System.out.println(bu1); } }
2.public String toString() :将当前StringBuilder对象转换为String对象
public class Demo01StringBuilder { public static void main(String[] args) { //String -> StringBuilder StringBuilder bu = new StringBuilder("Hello World!"); //StringBuilder -> String String s = bu.toString(); System.out.println(s); } }
今天看了《大道至简》中的一句话,感悟很深:你的桌面整齐吗?
如果你能把桌面收拾的井井有条,为什么不能把知识分门别类呢?学习也应该不只是盲目的大量输入,更应该善于总结,善于整理。只有脉络清晰,才是真正的学到了东西,否则学习完脑子里也是一团浆糊。
反思自己,又何尝不是这样的呢?今后不要盲目贪多,细嚼慢咽才能好好吸收。
明天从包装类开始学习。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南