天天看點

Java中static和final的差別

Java中static和final的差別

static是靜态修飾關鍵字,可以修飾變量和程式塊以及類方法:

當定義一個static的變量的時候jvm會将将其配置設定在記憶體堆上,所有程式對它的引用都會指向這一個位址而不會重新配置設定記憶體;

當修飾一個程式塊的時候(也就是直接将代碼寫在static{...}中)時候,虛拟機就會優先加載靜态塊中代碼,這主要用于系統初始化;

當修飾一個類方法時候你就可以直接通過類來調用而不需要建立對象。

final可以修飾變量、方法及類:

當定義一個final變量時,jvm會将其配置設定到常量池中,程式不可改變其值;

當修飾一個方法時,該方法在子類中将不能被重寫;

當修飾一個類時,該類不能被繼承。

  1. static變量

按照是否靜态的對類成員變量進行分類可分兩種:一種是被static修飾的變量,叫靜态變量或類變量;另一種是沒有被static修飾的變量,叫執行個體變量。兩者的差別是:

繼續閱讀