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就派上用场了!

有疑问欢迎留言

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

发布了50 篇原创文章 · 获赞 208 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/H_W_1212/article/details/104225873