少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

          Static 靜態:這里主要記錄的是靜態程序塊和靜態方法

          如果有些代碼必須在項目啟動的時候就執行,就需要使用靜態代碼塊,這種代碼是主動執行的;需要在項目啟動的時候就初始化但是不執行,在不創建對象的情況下,可以供其他程序調用,而在調用的時候才執行,這需要使用靜態方法,這種代碼是被動執行的. 靜態方法在類加載的時候 就已經加載 可以用類名直接調用。

          靜態代碼塊和靜態方法的區別是:

          靜態代碼塊是自動執行的;

          靜態方法是被調用的時候才執行的.

          靜態方法:如果我們在程序編寫的時候需要一個不實例化對象就可以調用的方法,我們就可以使用靜態方法,具體實現是在方法前面加上static,如下:

          public static void method(){}

          在使用靜態方法的時候需要注意一下幾個方面:

          在靜態方法里只能直接調用同類中其他的靜態成員(包括變量和方法),而不能直接訪問類中的非靜態成員。這是因為,對于非靜態的方法和變量,需要先創建類的實例對象后才可使用,而靜態方法在使用前不用創建任何對象。(備注:靜態變量是屬于整個類的變量而不是屬于某個對象的)

          靜態方法不能以任何方式引用this和super關鍵字,因為靜態方法在使用前不用創建任何實例對象,當靜態方法調用時,this所引用的對象根本沒有產生。

          靜態程序塊:當一個類需要在被載入時就執行一段程序,這樣可以使用靜態程序塊。

          public class DemoClass {

          private DemoClass(){}

          public static DemoClass _instance;

          static{

          if(null == _instance ){

          _instance = new DemoClass();

          }

          }

          public static DemoClass getInstance(){

          return _instance;

          }

          }

          這樣的程序在類被加載的時候就執行了static中的代碼。

          Ps:java中類的裝載步驟:

          在Java中,類裝載器把一個類裝入Java虛擬機中,要經過三個步驟來完成:裝載、鏈接和初始化,其中鏈接又可以分成校驗、準備和解析三步,除了解析外,其它步驟是嚴格按照順序完成的,各個步驟的主要工作如下:

          所謂裝載就是尋找一個類或是一個接口的二進制形式并用該二進制形式來構造代表這個類或是這個接口的class對象的過程。其中類或接口的名稱是給定了的。

          裝載:查找和導入類或接口的二進制數據;

          鏈接:執行下面的校驗、準備和解析步驟,其中解析步驟是可以選擇的;

          校驗:檢查導入類或接口的二進制數據的正確性;

          準備:給類的靜態變量分配并初始化存儲空間;

          解析:將符號引用轉成直接引用;

          初始化:激活類的靜態變量的初始化Java代碼和靜態Java代碼塊

          posted on 2015-03-25 15:24 abin 閱讀(328) 評論(0)  編輯  收藏 所屬分類: JavaBasic
          主站蜘蛛池模板: 密山市| 卓资县| 剑川县| 土默特右旗| 金昌市| 昌邑市| 温泉县| 博罗县| 嵊泗县| 大足县| 富阳市| 平昌县| 左贡县| 肃宁县| 苍南县| 武宁县| 商城县| 眉山市| 重庆市| 镇康县| 荥经县| 阳江市| 天峻县| 冕宁县| 厦门市| 枞阳县| 盐山县| 名山县| 龙泉市| 秀山| 永登县| 夏津县| 丰镇市| 佛山市| 武邑县| 平阴县| 开江县| 江川县| 和田市| 民乐县| 调兵山市|