靜態變數位於方法區,為所有物件共享乙份記憶體,一旦靜態變數被修改,其他物件均對修改可見,故執行緒不安全
單例模式或只對乙個物件進行操作時執行緒不安全
例項變數為物件例項私有,在虛擬機器堆中分配,若在系統中只存在乙個此物件的例項,在多執行緒環境下,猶如靜態變數那樣,被某個執行緒修改後,其他執行緒對修改均可見,故執行緒不安全;
如果每個執行緒都是在不同的物件中,那麼物件與物件之間的例項變數的修改將互不影響,故執行緒安全
抽象類表示這個物件是什麼。介面表示物件能做什麼。
乙個類只能繼承乙個類(抽象類),可以實現多個介面,子類必須實現抽象方法
抽象類和介面都不能直接例項化,如果要例項化,抽象類變數必須指向實現所有抽象方法的子類物件,介面變數必須指向實現所有介面方法的類物件。
介面可以做方法申明,jdk8後可以在做預設實現方法,抽象類中可以做方法申明,也可以做方法實現
介面方法沒有宣告default,預設都是抽象方法,抽象類裡可以沒有抽象方法
抽象方法要被實現,所以不能是靜態的,也不能是私有的
介面裡定義的變數只能是公共的靜態的常量,抽象類中的變數是普通變數。
JAVA 抽象與介面
抽象類是不能建立物件的 抽象方法是沒有實現部分的 抽象方法會強制子類去重寫抽象方法 例子abstract class animal這個類就是抽象類 裡面的方法也是抽象方法 注意 抽象類裡面 可以沒有抽象方法 但是抽象方法一定要在抽象類裡面 抽象類裡面可以有變數也可以有常量 可以有成員方法 也可以有抽...
java學習 抽象與介面
介面 1.只能夠有靜態的不能被修改的資料成員 也就是必須是static final 的,不過在inte ce中一般不定義資料成員 所有的成員方法都是abstract的 2.介面中定義的變數預設是public static final 型,且必須給其初值,所以實現類中不能重新定義,也不能改變其值 3....
Java抽象類與介面
一.概念 在物件導向的概念中,我們知道所有的物件都是通過類來描繪的,但是反過來卻不是這樣。並不是所有的類都是用來描繪物件的,如果乙個類中沒有包含足夠的資訊來描繪乙個具體的物件,這樣的類就是抽象類。比如 如果我們進行乙個圖形編輯軟體的開發,就會發現問題領域存在著圓 三角形這樣一些具體概念。它們是不同的...