一、String类对象内容不可改变
也就是说String类型的字符串的内容--旦声明赋值之后是不可以改变的
DEMO:观察代码
发现了最后输出的内容是“helloworld!”这与之前的描述不同,其实这里改变的不是原来的字符串的内容,改变的是引用。+
通过上面的DEMO发现了最初声明的“hello”并没有改变,改变的是引用。还发现了生成许多没有栈内存指向的对象,这样的对象将会等待GC回收!
也说明如果一个String类字符串改变频率较高则会产生大量的垃圾,这样造成内存的耗费从而降低了性能。
所以如果字符串频率改变高的时候我们不使用String类来实现字符串的创建,而是使用“StringBuffer” 或者“StringBuilder”类来创建字符串(但是这两个类我们放到常用类库部分去讲解)
DEMO:观察代码(使用String声明的字符串)
不断的触发GC,说明产生了大量的垃圾对象。
DEMO:观察代码(使用StrinBuilder声明的字符串)
发现了使用StringBuilder 的时候没有触发GC,说明没有产生垃圾对象。
总结:
1、String 类的字符串对象不可以改变
2、如果一个字符串改变频率太高则会产生大量的垃圾,所以此时我们不使用String类来实现字符串的创建。
以下是我整理的Java学习资料免费提供
这里的话我也将我之前在学习过程中用到的一些学习资料整理成了文档,以及我自身之前的一个面试文案和知识点补充,有需要的朋友可以加我的QQ学习交流群 697888503 ,这里也希望大家最终都能够学有所成,学习编程不是一天两天的功夫,勤能补拙才是硬道理,祝大家最终都能成为一名合适开发攻城狮。