string类里代码的一些疑问

img


original.value赋给this的value,但是original的value又是怎么赋上值的呢,到底是怎么将字符串变成底层的数组存起来的呢?

回答:傻孩子,这只是简单的修改一下引用指向的地址而已了,不算太底层的内容,引用指向地址的修改,就像C语言的指针指向的内容被修改了一样;Java的字符串底层是放在常量池里面的,这涉及到jvm的知识,放在常量池,在jvm启动的时候就把类加载进去,然后初始化好这些基本的数据,然后再将类对象的引用指向这些常量池的内容,这里面仍然没有特别底层,因为都只是引用指向地址的修改问题;至于Java底层对字符串常量池的操作,我想应该是借助C++代码实现的,所以可以参考一下别的文章:https://blog.csdn.net/Prior_SX/article/details/123463430

这一篇详细一些,但是并没有具体讲解底层引用的具体转移,以及字符串的存储实现