posts - 110, comments - 101, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          日歷

          <2016年7月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          搜索

          •  

          最新評論

          Static 靜態(tài):這里主要記錄的是靜態(tài)程序塊和靜態(tài)方法

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

          靜態(tài)代碼塊和靜態(tài)方法的區(qū)別是:


          靜態(tài)代碼塊是自動執(zhí)行的;

          靜態(tài)方法是被調(diào)用的時候才執(zhí)行的.

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

          public static void method(){}

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

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

          靜態(tài)方法不能以任何方式引用this和super關(guān)鍵字,因為靜態(tài)方法在使用前不用創(chuàng)建任何實例對象,當靜態(tài)方法調(diào)用時,this所引用的對象根本沒有產(chǎn)生。

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

          public class DemoClass {

          private DemoClass(){}

          public static DemoClass _instance;

          static{

          if(null == _instance ){

          _instance = new DemoClass();

          }

          }

          public static DemoClass getInstance(){

          return _instance;

          }

          }

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

          Ps:java中類的裝載步驟:

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

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

          裝載:查找和導(dǎo)入類或接口的二進制數(shù)據(jù);

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

          校驗:檢查導(dǎo)入類或接口的二進制數(shù)據(jù)的正確性;

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

          解析:將符號引用轉(zhuǎn)成直接引用;

          初始化:激活類的靜態(tài)變量的初始化Java代碼和靜態(tài)Java代碼塊

          本篇文章來源于 Linux公社網(wǎng)站(www.linuxidc.com)  原文鏈接:http://www.linuxidc.com/Linux/2010-03/24783.htm


          評論

          # re: java static塊和static 方法 的使用區(qū)別  回復(fù)  更多評論   

          2016-07-20 19:49 by zhangsan
          sss

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 民和| 和田县| 磐石市| 阿鲁科尔沁旗| 西林县| 山东省| 吉水县| 渭源县| 嘉鱼县| 瑞安市| 白玉县| 锦州市| 新巴尔虎右旗| 马边| 焦作市| 廉江市| 玛纳斯县| 乌恰县| 武城县| 从化市| 湖南省| 衡南县| 贺州市| 肇州县| 阜南县| 博野县| 芷江| 高要市| 西城区| 朝阳县| 泗阳县| 刚察县| 自贡市| 阳新县| 乌兰浩特市| 大余县| 来宾市| 汾阳市| 社旗县| 剑河县| 吉安市|