此刻正在翻阅这篇文章的你,一定是一个爱学习的人儿!奥利给!
有同学在学习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就派上用场了!
有疑问欢迎留言
点个赞,加个关注呗!嘿嘿!
版权声明:本文为H_W_1212原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。