当我宣布以下内容时会发生什么:
public static final String forma = "Rectangular";
这不是多余的吗?作为String的最后一堂课,如果不将 forma
设为最终版,会有什么变化?对于static
,我认为它没有做任何改变。
答案 0 :(得分:3)
final
确保引用未分配给新值。
如果你没有final
,那么将一些其他值分配给forma
(或)你可以对Rectangular
进行一些操作并将结果分配回{ {1}}
答案 1 :(得分:1)
对于object-types'final'修饰符意味着不能更改对象的REFERENCE,而不是它的值!
答案 2 :(得分:1)
请参阅字符串是最终类,最终关键字使引用最终不是对象最终。
最终对象意味着它不能被改变,但是最终引用意味着在第一次分配后它不能被分配给另一个对象。
最终意味着你无法修改对象String s="hello"
,"hello"
是字符串对象而且无法修改,但如果它是非最终引用我会做s
例如:s=s.concat("bing")
然后,"hello"
可以与"bing"
对象连接,然后分配给s
表示"hello" and "bing"
对象未被修改,他们丢失了引用和非最终引用s
现在指的是新对象"hellobing"
。
如果你觉得这很有趣,我肯定想帮你更多。
答案 3 :(得分:0)
这不是多余的吗?
不,这不是多余的。它是不变的。该陈述的每个关键词都有意义。 final
将不可变,static
设为类变量,public
使其全局可访问。
答案 4 :(得分:0)
final
关键字严重超载,在不同的上下文中意味着非常不同的事情: