扩展底层原理1:字符串存储的内存原理
(1)直接赋值会复用字符串常量池中的;
(2)new 出来不会复用,而是开辟一个新的空间。
扩展底层原理2:==号 比较的到底是什么?
(1)基本数据类型比较数据值。
(2)引用数据类型比较地址值。
扩展底层原理3:字符串拼接的底层原理
(1)如果没有变量参与,都是字符串直接相加,编译之后就是拼接之后的结果,会复用串池中的字符串。
(2)如果有变量参与,会创建新的字符串,浪费内存。
扩展底层原理4:StringBuilder提高效率原理图
(1)所有要拼接的内容都会往StringBuilder中放,不会创建很多无用的空间,节约内存
扩展底层原理5:StringBuilder源码分析
(1)默认创建一个长度为16的字节数组
(2)添加的内容长度小于16,直接存
(3)添加的内容大于16会扩容(原来的容量*2+2)
(4)如果扩容之后还不够,以实际长度为准。