Java基礎六

Java基礎

static(靜態)關鍵字

static關鍵字:
用於修飾成員(成員變量和成員函數)

被修飾後的成員具備以下特點:

隨着類的加載而加載
也就是說靜態會隨着類的消失而消失,說明它的生命週期最長。

優先於對象存在

被所有對象所共享

可以直接被類名調用 類名.靜態成員

實例變量和類變量的區別:
1,存放位置:
類變量隨着類的加載而存在於方法區中。
實例變量隨着對象的建立而存在於堆內存中。

2,生命週期:
類變量生命週期最長,隨着類的消失而消失。
實例變量生命週期隨着對象的消失而消失。

使用注意:

靜態方法只能訪問靜態成員
非靜態方法既可以訪問靜態成員,也可以訪問非靜態成員

靜態方法中不可以寫this,super關鍵字
因爲靜態優先於對象存在。

主函數是靜態的

靜態有利有弊
利:對對象的共享數據進行單獨空間的存儲,節省空間。沒有必要每一個對象中都存儲一份。
可以直接被類名調用
弊:生命週期過長,
訪問出現侷限性。(靜態雖好,只能訪問靜態)

main函數

主函數:是一個特殊的函數,作爲程序的入口,可以被jvm調用。

主函數的定義:
public:代表着該函數的訪問權限是最大的。
static:代表主函數隨着類的加載就已經存在了。
void:主函數沒有具體的返回值。
main:不是關鍵字,但是是一個特殊的單詞,可以被jvm識別。
(String[] args):函數的參數,參數類型是一個數組,該數組中的元素是字符串。字符串類型的數組。

主函數是固定格式的:jvm識別。

jvm在調用主函數時,傳入的是 new String[0];

靜態什麼時候使用

什麼時候使用靜態,要從兩方面入手。
因爲靜態修飾的內容有成員變量和函數。

1,什麼時候定義靜態變量呢?
當對象中出現共享數據時,該數據被靜態所修飾。
對象中的特有數據要定義成非靜態存在於堆內存中。

2,什麼時候定義靜態函數?
當功能內部沒有訪問到非靜態數據時(對象的特有數據),那麼該功能可以定義成靜態的。

默認構造函數

一個類中默認會有一個空參數的構造函數,
這個默認的構造函數的權限和所屬類一致。
如果類被public修飾,那麼默認的構造函數也帶public修飾符。
如果類沒有被public修飾,那麼默認的構造函數,也沒有public修飾。

默認構造構造函數的權限是隨着的類的變化而變化的。

靜態代碼塊

格式:
static
{
靜態代碼塊中的執行語句。
}

特點:隨着類的加載而執行,只執行一次,並優先於主函數。
用於給類進行初始化的。

設計模式

設計模式:解決某一類問題最行之有效的方法。
java中23種設計模式

單例設計模式
解決一個類在內存中只存在一個對象。

想要保證對象唯一。
1,爲了避免其他程序過多建立該類對象。先禁止其他程序建立該類對象
2,還爲了讓其他程序可以訪問到該類對象,只好在本類中,自定義一個對象。
3,爲了方便其他程序對自定義對象的訪問,可以對外提供一些訪問方式。

這三部怎麼用代碼體現呢?
1,將構造函數私有化。
2,在類中創建一個本類對象。
3,提供一個方法可以獲取到該對象。

對於事物該怎麼描述,還怎麼描述。
當需要將該事物的對象保證在內存中唯一時,就將以上的三步加上即可。

在這裏插入圖片描述
在這裏插入圖片描述記住原則:定義單例,建議使用餓漢式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章