static關(guān)鍵字

static關(guān)鍵字:

1.static修飾的變量叫做“靜態(tài)變量”.

2.static修飾的方法叫做“靜態(tài)方法”.

3.static還可以定義靜態(tài)語句塊.

以下例子演示:static定義靜態(tài)語句塊

static定義的靜態(tài)語句塊在類加載階段執(zhí)行脐嫂,并且只執(zhí)行一次枉疼,并且是自上而下的順序執(zhí)行。(main方法執(zhí)行之前,static就已經(jīng)執(zhí)行咙崎。從上而下的執(zhí)行部逮,先執(zhí)行static 后執(zhí)行main)

public class StaticTest01{

//靜態(tài)語句塊

static{

System.out.println("1");

}

static{

System.out.println("2");

}

static{

System.out.println("3");

//入口

public static void main(String[] args){

System.out.println("main execute!? 1");

System.out.println("main execute!? 2");

}

}

第二節(jié)

一般情況下工具類中的方法大部分都是靜態(tài)方法。

靜態(tài)方法不用創(chuàng)建對象也能直接訪問該方法友酱。

*/

public class StaticTest03{

//成員方法

//成員方法必須使用“引用.”調(diào)用

public void m1(){

}

//靜態(tài)方法

//可以使用“類名.”方式調(diào)用.也可以用“引用.”驳庭,即使用的是“引用.”刑顺,底層還是用的“類名.”? ,靜態(tài)方法中不能直接訪問非靜態(tài)數(shù)據(jù).? //靜態(tài)方法中不能使用this饲常、非靜態(tài)數(shù)據(jù)包括非靜態(tài)方法和成員變量蹲堂!

public static void m2(){

System.out.println("m2....");

}

//入口

public static void main(String[] args){

StaticTest03 st = new StaticTest03();

st.m1();

m2();

//靜態(tài)的方法按照正規(guī)的方式訪問:“類名.”? //靜態(tài)的方法也能用“引用.”訪問? st.m2(); //編譯階段檢查出st是StaticTest03類型,編譯通過贝淤,運行的時候柒竞,仍然使用 "StaticTest03."的方式訪問。//該方法執(zhí)行不需要對象播聪。//空的引用去訪問成員的時候會出現(xiàn)空指針異常朽基。//m2方法不是“成員”而是靜態(tài)的。//所以即使引用是空的离陶,也不會報空指針異常稼虎。(其實也就是說,m2 方法執(zhí)行底層是 不需要這個對象的招刨。)(重要)

StaticTest03 s = null;

s.m2();

}

}

第三節(jié)

變量分類:

1.局部變量

2.成員變量(實例變量霎俩,非靜態(tài)變量)

3.靜態(tài)變量(方法區(qū))

什么時候變量聲明成靜態(tài)變量?(所有的java對象都有這個屬性,并且這個屬性對應(yīng)的值都是一樣的打却。沒必要讓每個對象都保留一份杉适,我們聲明成靜態(tài)變量,在方法區(qū)塊只有一個柳击,所有的對象公用一個猿推,目的在節(jié)省內(nèi)存)靜態(tài)變量在類加載時初始化,而且只執(zhí)行一次捌肴。

如果這個屬性所有的對象都有蹬叭,并且這個屬性的值是相同的,則該屬性聲明成

靜態(tài)的屬性哭靖。

成員變量:成員變量在創(chuàng)建對象的時候初始化具垫,并且存儲在堆中的每一個對象中。

靜態(tài)變量:在類加載階段賦值试幽,并且只賦值一次筝蚕。

//靜態(tài)變量,被存儲在方法區(qū).

//所有的java對象共享這一份铺坞。沒必要在堆中創(chuàng)建去浪費空間起宽。

//所以靜態(tài)變量是類級別的,使用“類名.”的方式訪問.

第四節(jié) 單例模式

單例模式是23種設(shè)計模式中最簡單的一種設(shè)計模式济榨。

為了解決什么問題坯沪?為了保證JVM(虛擬機(jī))中某一個類型的java對象永遠(yuǎn)只有一個。為了節(jié)省內(nèi)存的開銷擒滑。(這就是優(yōu)點)(我們知道對象創(chuàng)建完成戶腐晾,會放到堆中,如果堆中的實例過多丐一,將會存在特別多的垃圾藻糖,這樣會導(dǎo)致一些問題,比如內(nèi)存溢出 库车,使用單例模式巨柒,只會創(chuàng)建一個實例,顯著減少了對象實例的個數(shù)柠衍,同時也提高了性能洋满,因為不會頻繁的創(chuàng)建對象,這只是它的一個好處珍坊。)

//==兩邊如果是基本數(shù)據(jù)類型牺勾,可以比較這兩個基本數(shù)據(jù)類型是否相等。

//==兩邊如果是引用數(shù)據(jù)類型阵漏,則比較的是內(nèi)存地址禽最。

實現(xiàn)單例模式

什么是設(shè)計模式:設(shè)計模式是可以重復(fù)利用的解決方案腺怯。

單例模式要領(lǐng):

1.構(gòu)造方法私有化

2.對外提供一個公開的靜態(tài)的獲取當(dāng)前類型對象的方法.

3.提供一個當(dāng)前類型的靜態(tài)變量袱饭。

單例模式分為兩種:

餓漢式單例:在類加載階段就創(chuàng)建了對象川无。

懶漢式單例:用到對象的時候才會創(chuàng)建對象。

public class Singleton{ //懶漢式單例

//靜態(tài)變量

private static Singleton s;

//將構(gòu)造方法私有化

private Singleton(){}

//對外提供一個公開獲取Singleton對象的方法.

public static Singleton getInstance(){

if(s==null){

s = new Singleton();

}

return s;

}

}

/*

餓漢式單例模式

*/

public class Customer{

//類加載時只執(zhí)行一次虑乖。

private static Customer c = new Customer();

//構(gòu)造方法私有化

private Customer(){}

//提供公開的方法

public static Customer getInstance(){

return c;

}

}+

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末懦趋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疹味,更是在濱河造成了極大的恐慌仅叫,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件糙捺,死亡現(xiàn)場離奇詭異诫咱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)洪灯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門坎缭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人签钩,你說我怎么就攤上這事掏呼。” “怎么了铅檩?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵憎夷,是天一觀的道長。 經(jīng)常有香客問我昧旨,道長拾给,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任兔沃,我火速辦了婚禮蒋得,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘粘拾。我一直安慰自己窄锅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布缰雇。 她就那樣靜靜地躺著入偷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪械哟。 梳的紋絲不亂的頭發(fā)上疏之,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機(jī)與錄音暇咆,去河邊找鬼锋爪。 笑死丙曙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的其骄。 我是一名探鬼主播亏镰,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拯爽!你這毒婦竟也來了索抓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤毯炮,失蹤者是張志新(化名)和其女友劉穎逼肯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桃煎,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡篮幢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了为迈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片三椿。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖曲尸,靈堂內(nèi)的尸體忽然破棺而出赋续,到底是詐尸還是另有隱情,我是刑警寧澤另患,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布纽乱,位于F島的核電站,受9級特大地震影響昆箕,放射性物質(zhì)發(fā)生泄漏鸦列。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一鹏倘、第九天 我趴在偏房一處隱蔽的房頂上張望薯嗤。 院中可真熱鬧,春花似錦纤泵、人聲如沸骆姐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玻褪。三九已至,卻和暖如春公荧,著一層夾襖步出監(jiān)牢的瞬間带射,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工循狰, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留窟社,地道東北人券勺。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像灿里,于是被迫代替她去往敵國和親关炼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容