DESKTOP-7O1P1F7_20200901-齐元朝

问题

对StringBuffer的理解:

StringBuffer字符串缓冲区,所谓的可变的字符串,其本质是更换了对象中value变量所指向的数组。

不论是String还是StringBuffer或者是StringBuilder,它们的对象的本质是一个数组,一个存储字符序列(或是存储字节序列)的数组

数组的长度是不可变的,而且String对象中的value变量是最终变量,无法改变,即它不能指向其它数组,又因为被private修饰,数组元素也无法更改(流氓除外),结合这两点,(String对象中的value指向的数组不可见,元素不可更改;数组长度不可更改)所以String对象不可变

而Buffer和Builder对象中的value变量不是最终变量,所以,我们可以更改value变量中存储的地址,使其指向不同的数组,来达到可变的目的,长度不够换个长的,太长了就换个短的,就是所谓的可变字符串

吐槽

为什么Ctrl+鼠标左键打开的 JRE System Library中的代码无法修改 ╮(╯▽╰)╭

标签


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1