JAVA中String类对象不可以改变

一、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   ,这里也希望大家最终都能够学有所成,学习编程不是一天两天的功夫,勤能补拙才是硬道理,祝大家最终都能成为一名合适开发攻城狮。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值