1. 程式人生 > >final和static、static final的區別

final和static、static final的區別

1.final可修飾變數,方法,類:

修飾變數,系統會將該變數放到常量池中,並且不可被程式修改;

修飾方法,該方法不可被繼承重寫;

修飾類,該類不能被繼承。

2.static可修飾變數,方法,類:

修飾變數,該變數會變成靜態變數,jvm會把它放在記憶體堆上,所有的程式對他的引用都會指向這個地址,不會分配新的記憶體,它屬於所在的類,不能被所在類的物件的引用,共享此變數。

修飾方法,該方法可以直接被所在的類呼叫,一般用於系統初始化。

修飾類,此類只能是內部類,這樣外部類就可以直接呼叫類而不用新建物件。

3.static final 也可修飾變數,方法內部類:

修飾變數,屬於類的變數只能賦值一次。

修飾方法,屬於類的方法不可以被重寫。

修飾內部類,該類不能被繼承,但可以直接外部類呼叫,不用new物件。