隨筆-208  評論-469  文章-30  trackbacks-0

          static修飾符可以用來修飾類的成員變量、成員方法和代碼塊。
          用static修飾的成員變量表示靜態(tài)變量,可以直接通過類名來訪問;
          用static修飾的成員方法表示靜態(tài)方法,可以直接通過類名來訪問;
          用static修飾的程序代碼塊表示靜態(tài)代碼塊,當(dāng)Java虛擬機(jī)加載類時(shí),就會(huì)執(zhí)行該代碼塊。
          static變量
          ???
          ??? (1)靜態(tài)變量與實(shí)例變量的區(qū)別:
          靜態(tài)變量在內(nèi)存中只有一個(gè)拷貝,運(yùn)行時(shí)Java虛擬機(jī)只為靜態(tài)變量分配一次內(nèi)存,在加載類的過程中完成靜態(tài)類變量的內(nèi)存分配。可以直接通過類名訪問靜態(tài)變量;
          對于實(shí)例變量,每創(chuàng)建一個(gè)實(shí)例,就會(huì)為實(shí)例變量分配一次內(nèi)存,實(shí)例變量可以在內(nèi)存中有多個(gè)拷貝,互不影響。
          ??? (2)static變量,提供了全局變量的功能:
          能被類的所有實(shí)例共享,可作為實(shí)例之間進(jìn)行交流的共享數(shù)據(jù);
          如果類的所有實(shí)例都包含一個(gè)相同的常量屬性,可以把這個(gè)屬性定義為靜態(tài)常量類型,從而節(jié)省內(nèi)存空間。
          static方法

          ??? (1)靜態(tài)方法可訪問的內(nèi)容

          ??? 靜態(tài)方法不需要實(shí)例化就可以被調(diào)用,因此在靜態(tài)方法中不能使用this, super關(guān)鍵字,也不能直接訪問所屬類的實(shí)例變量和實(shí)例方法,但是可以直接訪問所屬類的靜態(tài)變量和靜態(tài)方法。

          ??? (2)實(shí)例方法可訪問的內(nèi)容

          ??? 在實(shí)例方法中可以直接訪問所屬類的靜態(tài)變量、靜態(tài)方法、實(shí)例變量和實(shí)例方法。

          ??? (3)靜態(tài)方法必須被實(shí)現(xiàn)

          ??? (4)作為程序入口的main()方法是靜態(tài)方法
          ???
          ??? main()方法必須用static修飾,這是因?yàn)榘裮ain()定義為靜態(tài)方法,可以使得Java虛擬機(jī)只要加載了main()方法所屬的類,就能執(zhí)行main()方法,而無須先創(chuàng)建這個(gè)類的實(shí)例。
          ??? 在main()靜態(tài)方法也是不能直接訪問實(shí)例變量和實(shí)例方法的。

          ??? (5)方法的字節(jié)碼都位于方法區(qū)
          ???
          ??? 不管實(shí)例方法,還是靜態(tài)方法,它們的字節(jié)碼都位于方法區(qū)內(nèi)。

          static代碼塊

          ??? 類中可以包含靜態(tài)代碼塊,它不存在任何方法體中。在Java虛擬機(jī)加載類時(shí)會(huì)執(zhí)行這些靜態(tài)代碼塊,每個(gè)靜態(tài)代碼塊只會(huì)被執(zhí)行一次。
          ??? Tips:
          Java虛擬機(jī)加載靜態(tài)代碼塊后,再執(zhí)行main()方法;
          類的構(gòu)造方法用于初始化類的實(shí)例,而類的靜態(tài)代碼塊則可用于初始化類,給類的靜態(tài)變量賦初始化值。
          靜態(tài)代碼塊與靜態(tài)方法一樣,也不能直接訪問類的實(shí)例變量和實(shí)例方法,而必須通過實(shí)例的引用來訪問它們。

          posted on 2006-11-29 00:44 EricWong 閱讀(271) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 荆州市| 辽宁省| 乐安县| 赤城县| 论坛| 木里| 乐清市| 临沭县| 长海县| 昌平区| 白朗县| 宿迁市| 鄄城县| 莱州市| 天祝| 平乐县| 确山县| 吉木乃县| 汉阴县| 巢湖市| 仪陇县| 张家口市| 永城市| 福海县| 古交市| 汝城县| 城固县| 措勤县| 沙坪坝区| 循化| 鸡泽县| 建阳市| 周宁县| 苍山县| 鹤岗市| 杨浦区| 永寿县| 宾阳县| 靖宇县| 青海省| 阳西县|