靜態關鍵字:static
1,修飾符。修飾成員(成員變數,成員函式)。
2,靜態和非靜態的區別。
靜態存在於方法區的靜態區中,
非靜態存在於方法區中。
3,什麼時候用靜態呢?
變數:當類中的屬性的資料是所有物件都共享的,就用static修飾。
方法:當方法中沒有訪問過非靜態資料時,該方法用static修飾。
4,成員變數和靜態變數的區別?
1,生命週期。
成員變數又叫例項變數,是隨著物件的出現而出現,隨著物件的消失而消失。
靜態變數又叫類變數,是隨著類的載入而出現,隨著類的消失而消失。
2,記憶體中的儲存位置。
成員變數存在在堆記憶體的物件中。
靜態變數儲存在方法區的靜態區中。
3,儲存的資料特點。
成員變數儲存的資料是物件的特有資料。
靜態變數儲存的資料是物件的共享資料。
4,呼叫方式。
成員變數,只能被物件所呼叫。
靜態變數,能被物件呼叫,也可以被類名呼叫。
5,靜態的特點以及注意事項?
特點:1,靜態修飾的內容可以實現被所有物件共享。
2,靜態資料隨著類的載入而載入,隨著類的消失而消失,生命週期較長,優先於物件存在。
3,靜態資料除了可以被物件呼叫以外,還可以用類名直接呼叫。
注意事項:
1,靜態方法只能訪問靜態成員,不能訪問非靜態成員。
2,非靜態既可以訪問靜態又可以訪問非靜態。
3,靜態方法不能使用this,super關鍵字。
6,主函式
public:許可權最大。
static:不需要物件,直接用jvm用該類名稱就可以呼叫該函式。
void:沒有具體返回值。
main:方法名稱是固定的。
(string args) :函式的引數。字串陣列型別的引數。
jvm傳遞是 new string[0];
7,單例設計模式
設計模式:就是解決問題行之有效的方法。是一種思想。
解決的問題就是保證乙個類在記憶體中只有乙個物件。
如何保證乙個類在記憶體中的物件唯一性?
1,不讓其他程式建立該類物件。
2,在本類中自己建立乙個本類物件。
3,對外還提供乙個獲取該物件的方法。
餓漢式:
class single
public staitc single getinstance()
}
懶漢式:
class single
public static single getinstance()
}
同步的懶漢式:
class single
public static single getinstance()
}} return s;
}}
加同步關鍵字,解決的是安全問題。
加雙重判斷,是為了提高效率。
1.5以後,列舉也是單例
public enum elvis
public static void main(string args)
}
8,懶漢式和餓漢式的區別?
懶漢式是在呼叫該類的時候才會載入該物件的例項。
餓漢式是在載入該類的時候就載入該物件的例項。
9,靜態**塊的特點和作用?構造**塊的作用?
靜態**塊特點:隨著類的載入而載入。
作用:給類初始化。
構造**塊:
構造**塊給所有物件初始化。
建構函式:
建構函式是給對應的物件初始化的。
區域性**塊:
控制區域性變數的生命週期
10,物件載入流程
1、載入類
2、堆記憶體中分配空間
3、屬性進行預設初始化
4、呼叫建構函式
5、呼叫父類建構函式
6、屬性顯示初始化
7、構造**快初始化
每new乙個物件才會執行一次構造**塊,無論呼叫多少次建構函式,只在第一次的時候執行構造**塊
8、建構函式自定義內容初始化
黑馬程式設計師 物件導向
物件導向 1 物件導向 是基於面向過程的一種思想。面向過程 以函式為基礎,關注實現過程。物件導向 以物件為基礎,關注實現結果。2 物件導向的思想特點 a 是一種更符合人們思考習慣的思想。b 把複雜的事情簡單化了。c 把我們從執行者變成了指揮者。舉例 買電腦。洗衣,做飯。旅遊。把大象裝進冰箱。體現 c...
黑馬程式設計師 物件導向
物件導向是一種思想,把複雜事物簡單化,把面向過程的執行者變成了指揮者。過程其實就是函式,而物件將函式和一些內容封裝。把事物的屬性和行為封裝成物件,再把物件抽象成類。類的訪問修飾符有public和final。而成員的修飾符有public private protected static 成員變數和區域...
黑馬程式設計師 單例模式
什麼叫單例模式 單例模式 singleton 是一種常用的設計模式。單例模式,也叫單子模式。在應用這個模式時,單例物件的類必須保證只有乙個例項存在。許多時候整個系統只需要擁有乙個的全域性物件,這樣有利於我們協調系統整體的行為 單例模式特點 顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必...