第三周总结
本周继续学Java
StringBuilder
public class demo11 { public static void main(String[] args) { //StringBuilder可以看作为一个容器,创建之后里面内容可变 //1.创建对象 StringBuilder sb = new StringBuilder(); //StringBuilder sb = new StringBuilder("abc"); //2.添加元素 sb.append("abc"); sb.append("ABC"); sb.append("软萌小鲨鱼"); //3.反转 sb.reverse(); System.out.println(sb); //获取长度 int lenth = sb.length(); System.out.println(lenth); //变回字符串 String str = sb.toString(); System.out.println(str); } }
public class demo12 { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); sb.append("aaa").append("bbb").append("ccc"); System.out.println(sb); } }
StringJoiner
JDK8出现的一个可变的操作字符串的容器,可以高效,方便的拼接字符串。
在拼接的时候,可以指定间隔符号,开始符号,结束符号。
public class demo15StringJoiner { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5,}; StringJoiner sj = new StringJoiner("---", "[", "]"); Stringstr= sj.add("1").add("2").add("3").add("4").add("5").toString(); System.out.println(str); } }
字符串原理小结
扩展底层原理1:字符串存储的内存原理
●直接赋值会复用字符串常量池中的
●new出来不会复用,而是开辟一个新的空间
扩展底层原理2: ==号比较的到底是什么?
●基本数据类型比较数据值
●引用数据类型比较地址值
扩展底层原理3:字符串拼接的底层原理
●如果没有变量参与,都是字符串直接相加,编译之后就是拼接之后的结果,会复用串池中的字符串。
●如果有变量参与,会创建新的字符串,浪费内存。
扩展底层原理4: StringBuilder提 高效率原理图
●所有要拼接的内容都会往StringBuilder中放,不会创建很多无用的空间,节约内存
扩展底层原理5: StringBuilder源码分析
●默认创建一-个长度为16的字节数组
●添加的内容长度小于16,直接存.
●添加的内容大于16会扩容(原来的容量*2+2 )
●如果扩容之后还不够,以实际长度为准
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix