final和static的區別

2021-08-07 08:04:26 字數 664 閱讀 8421

final可以修飾類、成員方法和變數(成員變數和區域性變數)。

1. final修飾的類不可以被繼承;

2. final修飾的方法不可以被重寫;

3. final修飾的變數表示常量,只能被賦值一次;

注意:final修飾成員變數時,預設沒有初始值。賦值方法(選擇其中一種):a.宣告時賦值;b.構造方法中賦值;c.**塊中賦值。

static可以修飾**塊、成員變數和成員方法。

1. static修飾的**塊稱為靜態**塊,在類載入的時候執行;

2. static修飾的成員方法和成員變數屬於整個類,被類的所有物件共享,可以通過類名直接呼叫;

注意:如果靜態**塊有多個,jvm將按照它們在類中出現的先後順序依次執行,並且每個靜態**塊只會被執行一次。

final static可以修飾成員變數和成員方法。

1. final static修飾的成員變數表示常量,只能被賦值一次,並且可以通過類名直接訪問;

2. final static修飾的成員方法,表示該方法不可以被重寫,並且可以通過類名直接訪問。

注意:final static和final修飾的成員變數,成員變數本身不能再改變,但對於一些容器型別(比如,arraylist、hashmap)的成員變數,雖然不可以改變容器變數本身(即:引用值),但可以修改容器中存放的物件。

Final和static的區別

首先 final 和static 是完全沒有關係的。final 作用 1.final 修飾屬性,表示屬性 只能賦值一次 1 基本型別 值不能被修改 2 引用型別 引用不可以被修改該。如 public final int rows 1 此時變數rows不管在什麼地方引用,都不能被再次賦值。但是,可以先...

static和final的區別

修飾變數 靜態變數隨著類載入時被完成初始化,記憶體只有乙個,且jvm也只會為他分配一次記憶體,所有類共享靜態變數。修飾方法 在類載入的時候就存在,不依賴任何例項。static方法必須實現,不能用abstract修飾。即abstract修飾的方法不可謂static。修飾 塊 在類載入完成之後就會執行靜...

final和static的區別

一.static的作用 靜態方法只能訪問靜態變數,靜態變數一般使用類名訪問,靜態語句塊先於程式執行 static的的作用從三個方面來談,分別是靜態變數 靜態方法 靜態類。1.靜態變數 宣告為static的靜態變數實質上就是全域性變數,當宣告乙個物件時,並不產生static變數的拷貝,而是該類所有例項...