关于string的final类型
有没有人能告诉我string本身是final类型的为什么下面的程序要在他前面加final?1.finalStringstr1="aaa";2.finalStringstr...
有没有人能告诉我string本身是final类型的为什么下面的程序要在他前面加final?
1. final String str1 = "aaa";
2. final String str2 = "bbb";
3. String str3 = "aaabbb";
4.
5. /*
6. * 因为str1与str2都定义成了常量,所以编译时就能确定,编译时就会将常量替换,等同于
7. * str4 = "aaa"+"bbb",因此不产生新对象
8. */
9. String str4 = str1 + str2;
10. System.out.println(str3 == str4);//true 展开
1. final String str1 = "aaa";
2. final String str2 = "bbb";
3. String str3 = "aaabbb";
4.
5. /*
6. * 因为str1与str2都定义成了常量,所以编译时就能确定,编译时就会将常量替换,等同于
7. * str4 = "aaa"+"bbb",因此不产生新对象
8. */
9. String str4 = str1 + str2;
10. System.out.println(str3 == str4);//true 展开
2013-09-08
展开全部
String是本身是final,是指String指针指向的内存地址中的内容不能被修改。final String str1是说指针str1是个常量,不能被修改成指向别个地址(也就是别个String)。
String是static final的,当内存中存在相同时。引用相同的地址 String str3 = "aaabbb";
如果* str4 = "aaaa"+"bbb"时str3 != str4
String是static final的,当内存中存在相同时。引用相同的地址 String str3 = "aaabbb";
如果* str4 = "aaaa"+"bbb"时str3 != str4
推荐于2018-04-14
展开全部
string类是final的,是说它不可被继承!而str是个变量,加final只是说它不可改变!两者没有直接的关系
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-08
展开全部
只是起迷惑作用吧,你是想问为什么结果是true呢?还是什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询