字符串String的特点

String的特点:

对于String来说,有一句经典的说法—->一旦创建,内容无法改变。
为什么呢?,其实很简单,因为String类本身没有提供,没有向外提供改变其内容的方法,所以无法改变(但是String提供了很多操作方法),所以,就算你改变了String的内容,那也是更改了对象的内存指向了,对象的栈引用指向了新的内容的堆地址。
举个例子:

String str="hello";
str="world";

分析一下内存过程:
可以发现,这是一个简单的常量;
首先,栈中创建一个str,然后常量池中去寻找知否有一个内容是hello,如果有直接将str指向这个内容,如果没有则在常量池创建这个内容,并将str指向这个内容。
然后,将str的内容改为了world,(还是一样会去常量池去寻找有没有world这样一个字符串,如果有直接使用,如果没有再进行创建),这个时候,str引用先打断指向hello,重新指向world。
内存分析

猜你喜欢

转载自blog.csdn.net/jakezhang1990/article/details/80827064