怎样理解String的不变模式
答案:2 悬赏:40
解决时间 2021-03-09 14:50
- 提问者网友:虛偽丶靜
- 2021-03-08 18:40
怎样理解String的不变模式
最佳答案
- 二级知识专家网友:邪性洒脱
- 2021-03-08 19:40
java中的字符串。 String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。
String 是特殊的引用对象,可以不用new ,就可产生对象。
例如:
String a="abc";
String b="abc";
String c=new String("abc");
这里一共生成了两个对象。"abc"一个对象,new String()一个对象。
a,b,c都在栈区创建了引用,
a,b指向的是常量池中的"abc",new String的值指向的也是常量池中的abc;
※同一个字符串,只会创建一次。
例如:
String a="abc";
a=a+"d";
执行这个操作,实际上产生了3个对象,一个"abc",一个“d”,一个“abcd”。
只是当拼接完成之后,"abc",“d”都失去了引用,成为垃圾对象了。
实际我改变不是"abc"本身,而只是把引用指向了“abcd”;
※对字符串本身操作时,不是改变了对象本身,而是改变了引用。
String 是特殊的引用对象,可以不用new ,就可产生对象。
例如:
String a="abc";
String b="abc";
String c=new String("abc");
这里一共生成了两个对象。"abc"一个对象,new String()一个对象。
a,b,c都在栈区创建了引用,
a,b指向的是常量池中的"abc",new String的值指向的也是常量池中的abc;
※同一个字符串,只会创建一次。
例如:
String a="abc";
a=a+"d";
执行这个操作,实际上产生了3个对象,一个"abc",一个“d”,一个“abcd”。
只是当拼接完成之后,"abc",“d”都失去了引用,成为垃圾对象了。
实际我改变不是"abc"本身,而只是把引用指向了“abcd”;
※对字符串本身操作时,不是改变了对象本身,而是改变了引用。
全部回答
- 1楼网友:哥在撩妹请勿打扰
- 2021-03-08 20:36
搜一下:怎样理解String的不变模式
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯