最終的(final)和靜止的(static)的區別

在數學和科學中,常數是一個表示某個值的術語,例如π’ 這是3.14159號的實用名稱。Java有它的常量。這些變數在(a)下不屬於任何物件,子(b)一旦設定它們,它們就不會更改其值。變數宣告中的靜態字顯示該變數不屬於任何物件。有一個類似的關鍵字,它說變數值只設定一次,不會改變。這是關鍵字final。這個關鍵字不限於靜態變數,但可以與例項變數、區域性變數,甚至與引數方法的變數一起使用。透過將變數宣告為...

在數學和科學中,常數是一個表示某個值的術語,例如π’ 這是3.14159號的實用名稱。Java有它的常量。這些變數在(a)下不屬於任何物件,子(b)一旦設定它們,它們就不會更改其值。變數宣告中的靜態字顯示該變數不屬於任何物件。有一個類似的關鍵字,它說變數值只設定一次,不會改變。這是關鍵字final。這個關鍵字不限於靜態變數,但可以與例項變數、區域性變數,甚至與引數方法的變數一起使用。透過將變數宣告為final,您向每個人顯示,在存在期間變數將具有相同的值。更重要的是,編譯器將檢測到更改宣告變數值的每次嘗試,並將其報告為錯誤。至於Java術語,宣告為靜態和final的變數稱為常量。

最終的(final)和靜止的(static)的區別

什麼是最終的(final)?

最後一個修飾符可以在Java程式語言中的幾個地方使用。這裡我們將介紹它最常見的用法。最後一個修飾符可以應用於區域性變數、函式引數和非靜態或靜態成員變數的宣告。在此上下文中,變數修飾符轉換為常量。翻譯語言轉換器將檢查是否有程式碼試圖修改該值,並且這些嘗試將被標記為錯誤。下麵是一個例子。

最終int值=17;

帶有此修飾符的靜態成員變數用作全域性常量;例如,在java.lang.Math變數PI中

公共靜態最終雙PI=3.14159265358979323846;

我們可以將最後一個修飾符應用於函式的宣告。標記為final的函式不能再被否決,這是它的最終實現。抽象方法不能被宣告為最終的——它們是抽象的這一事實意味著它們缺乏實現;這當然不可能是他們的終極狀態。下麵是一個例子。

公共意義生命(){

返回42;

}

我們可以將最後一個修飾符應用於類宣告。標記為final的類不能再繼承-這是它的最終實現。顯然,抽象類不能同時是final。下麵是一個例子

公共期末課程結束{

// …

}

其中一個有限類示例是java.lang.String類–它是有限的,因此沒有人可以繼承它,從而訪問它的成員變數。

 

最終的(final)和靜止的(static)的區別

什麼是靜止的(static)?

靜態變數不屬於類的特定例項。靜態變數屬於類本身,在記憶體中只有一個位置,而不管在記憶體中建立的類的副本數是多少。非靜態變數屬於類樣本–類的每個例項都有自己的此類變數副本。靜態變數屬於類–記憶體中的類保留這些值​​這些變數的數量;因此,所有示例類都看到相同的內容,因此我們可以考慮在所有類大小之間共享靜態變數。透過更新value變數,新值將自動對該類的所有例項可見。靜態過濾器可以應用於類中合法宣告的任何元素。在成員變數的情況下,結果是這樣的成員變數將只儲存在記憶體中的一個地方。如果它是一種方**發生什麼?透過將方法宣告為靜態,訊息是相同的:相關方法不屬於類的類,而是屬於類本身。因此,靜態方法將不會收到對呼叫它們的物件的隱藏引用;在靜態引用方法中,這是不可用的。實際上,跨物件呼叫靜態方法與透過引用此引用訪問靜態成員變數一樣容易混淆:在這兩種情況下,最好只寫類名、點和呼叫方法的名稱。

 

最終和靜態之間的差異

  1. 變數

Static表示一個變數,它是例項化給定類的所有物件的公共變數,final定義常量。

  1. 方法

靜態是一種方法,對於給定類的每個物件都是相同的-也稱為類成員,例如,這是主方法。無法在繼承的類中處理Final方法。

  1. 等級

最後一個不能展開,即不允許子類。靜態不適用於類。

  1. 價值

簡單地說,final表示值不能更改(override)。靜態值設定為其預設值,但可以重新初始化。

最終與靜態:對比圖

最終的(final)和靜止的(static)的區別

總結 - 期末考試(of final) vs. 靜止的(static)

  • 即使沒有物件(例項),鍵work static也提供訪問。突出的類是透過關鍵字static宣告的。如果您不希望程式中的某些更改的值在以後消失,或者如果您希望編譯器檢查並禁止,您可以將該承諾更改為final。初始化有一個靜態塊。初始化的靜態塊在括號前面宣告為鍵static。這種塊在類讀取期間執行一次,通常初始化類的靜態成員。
  • 發表於 2021-06-25 15:47
  • 閱讀 ( 54 )
  • 分類:科技

你可能感興趣的文章

靜止的(static)和動態記憶體分配(dynamic memory allocation)的區別

...體分配有效。一個缺點是實現動態記憶體分配很複雜。 靜止的(static)和動態記憶體分配(dynamic memory allocation)的共同點 兩者都是記憶體分配機制。 兩者都應該由程式設計師手動實現。 靜止的(static)和動態記憶體分配(dynamic memory a...

  • 發佈於 2020-10-11 12:09
  • 閲讀 ( 242 )

靜止的(static)和java期末考試(final in java)的區別

關鍵區別——java中的靜態與最終版本 每種程式語言都有特定的語法。程式設計師在編寫程式時應該遵循這些語法。程式設計語言的關鍵字根據任務的不同具有特定的含義。它們由程式語言提供,不能用於使用者定義的變數、...

  • 發佈於 2020-10-19 07:48
  • 閲讀 ( 53 )

最終決賽(final finally)和用java完成(finalize in java)的區別

...。 目錄 1. 概述和主要區別 2. Java中的final是什麼 3. Java的最終含義是什麼 4. 什麼是Java中的finalize 5. final finally和finalize在Java中的相似性 6. 並排比較-最終版與最終版以表格形式在Java中完成 7. 摘要 什麼是java期末考試(final in java)...

  • 發佈於 2020-10-19 15:24
  • 閲讀 ( 52 )

靜止的(static)和動態特性(dynamic characters)的區別

...些型別的人物經歷了各種各樣的經歷,面臨著許多挑戰,最終他們出現了實質性的變化。這種變化通常不是環境,而是性格和性格。在大多數故事中,故事情節使主人公從幼稚、不成熟的角色成長為睿智、成熟的人物,具有很高...

  • 發佈於 2020-10-24 16:55
  • 閲讀 ( 48 )

最終的(final)和結局(finale)的區別

...區別。透過本文讓我們進一步考察兩者的區別。 什麼是最終的(final)? 決賽是指錦標賽的最後一場比賽,決定總冠軍。在許多運動專案中,如網球賽、橄欖球、籃球,結束比賽的比賽被稱為最後一場比賽。這裡的比賽不能稱為決...

  • 發佈於 2020-10-25 08:32
  • 閲讀 ( 35 )

靜止的(static)和動態路由(dynamic routing)的區別

...的路由是指在計算機網路中正確地轉發資料包,使資料包最終到達正確的目的地的過程。路由主要有靜態路由和動態路由兩種型別。在靜態路由中,網路管理員手動設定路由表中的路由條目。在這裡,他手動地設定哨兵,指定為...

  • 發佈於 2020-10-29 09:42
  • 閲讀 ( 46 )

靜電學(electrostatics)和磁靜校正(magnetostatics)的區別

靜電學和靜磁學的關鍵區別在於,靜電學研究的是靜止電荷,而靜磁學是研究電流穩定的系統中的磁場。 靜電學和靜磁學是電磁學的兩個分支。靜磁學是靜電學的磁模擬。 目錄 1. 概述和主要區別 2. 什麼是靜電學 3. 什麼是...

  • 發佈於 2020-11-02 16:08
  • 閲讀 ( 49 )

靜止的(quiescent)和衰老細胞(senescent cells)的區別

靜止細胞和衰老細胞的主要區別在於靜止細胞處於可逆的G0狀態,而衰老細胞處於不可逆的G0狀態。 一般來說,一個細胞週期有G1,S,G2,有絲分裂(核分裂)和胞質分裂。活躍分裂的細胞經歷了所有這些階段,它被稱為複製...

  • 發佈於 2021-03-04 19:30
  • 閲讀 ( 43 )

動態(dynamic)和靜態ip(static ip)的區別

動態IP是指每次連線到網路時都會發生變化的IP,而靜態IP是指無論連線多少次或從網路斷開多少次都保持不變的IP。您是否有靜態或動態IP地址取決於所述網路的管理員。每次連線到網路時,動態IP都會發生變化;這是一種在連線...

  • 發佈於 2021-06-22 11:51
  • 閲讀 ( 50 )

抽象類(abstract class)和java介面(interface in java)的區別

...方法。 介面只能有抽象方法。 預設情況下,變數不是最終變數。它可能包含非最終變數。 預設情況下,變數在介面中是最終的。 抽象類可以提供介面的實現。 介面不能提供抽象類的實現。 它可以有帶實現的方法。 它提...

  • 發佈於 2021-06-25 03:52
  • 閲讀 ( 43 )