Java答疑第四篇:String类创建的字符串对象可以更改吗

此刻正在翻阅这篇文章的你,一定是一个爱学习的人儿!奥利给!

有同学在学习String类的相关知识以后,产生了这样的疑问:String类创建的字符串对象可以更改吗?
答案:String对象一旦创建,实体是不可以变化的,即内容不能再修改
我们来看一个例子:

public class Study{
	public static void main(String args[ ]) {      
		Study1 study = new Study1();  //创建引用对象study
		study.fun();   //调用fun()方法
	}
}
class Study1{
	void fun() {
		String h1 = "helloWorld";
		System.out.println("第一次的h1= "+h1);
		h1="Java";
		System.out.println("修改之后的h1= "+h1);
	}
}

结果显示:
在这里插入图片描述
过程分析:在这里我定义了String类型的变量h1,随后对其变量值进行更改,得到不同的结果。String类创建的字符串对象都存放在Heap(堆)中,而第二次经过修改的字符串内容变了,这说明h1的指向变了,但第一个字符串对象还存在于堆中,即此时堆中存在了两个字符串,如下图:
在这里插入图片描述
而后等到某个时间段,某些没用到的对象就会被JVM中的垃圾回收器检测出来并回收。简单来说,String声明的是一个引用地址,而不是对其进行赋值。若果你要对其字符串进行修改等操作,那这个时候StringBuffer就派上用场了!

有疑问欢迎留言

点个赞,加个关注呗!嘿嘿!

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值