qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

          Java變量初始化的時(shí)機(jī)

            對(duì)于JAVA中變量的初始化是一個(gè)很基礎(chǔ)的問題,其中的一些問題也是易被學(xué)習(xí)者所忽略。當(dāng)在編寫代碼的時(shí)候碰到時(shí),常被這些問題引發(fā)的錯(cuò)誤,感覺莫名其妙。而且現(xiàn)在許多大公司的面試題,對(duì)于這方面的考查也是屢試不爽。以下是對(duì)java變量初始化的時(shí)機(jī)的分析。
            【java變量執(zhí)行初始化的步驟】
            java是一門強(qiáng)類型語言,因此java語言規(guī)定每個(gè)變量必須先聲明,然后才能使用,聲明變量時(shí)必須指定該變量的數(shù)據(jù)類型。首先看下面這條語句的執(zhí)行過程:
            int a = 5;
            實(shí)際上面這條語句會(huì)被拆分成兩個(gè)過程執(zhí)行:
           ?。?)int a ;//創(chuàng)建java對(duì)象時(shí)根據(jù)該語句為變量分配內(nèi)存空間;
           ?。?)a = 5;//賦值操作會(huì)最終被提取到構(gòu)造器中執(zhí)行初始化操作。
            實(shí)際上在java中,在使用new操作符創(chuàng)建一個(gè)類的實(shí)例對(duì)象的時(shí)候,開始分配空間并將成員變量初始化為默認(rèn)的數(shù)值,在這里并不是指將變量初始化為在變量定義處的初始值,對(duì)于基本類型變量,默認(rèn)值空值是0或false,對(duì)于引用類型變量,默認(rèn)空值為null。這一切都是在構(gòu)造函數(shù)執(zhí)行之前,變量的真正初始化是在構(gòu)造函數(shù)中執(zhí)行。
            【java中變量初始化的時(shí)機(jī)】
            1、程序可以在3個(gè)地方對(duì)實(shí)例變量進(jìn)行初始化:
            (1)定義實(shí)例變量的時(shí)候指定初始值;
            (2)非靜態(tài)初始化代碼塊中對(duì)實(shí)例變量指定初值;
            (3)構(gòu)造器中對(duì)實(shí)例變量指定初值。
            雖然程序在3個(gè)地方都可對(duì)實(shí)例變量指定初始值,但(1)、(2)處的賦值操作最終會(huì)被提取到構(gòu)造器中執(zhí)行。且(1)、(2)的執(zhí)行順序與他們?cè)谠闯绦蛑谐霈F(xiàn)的順序相同??梢酝ㄟ^JDK的javap工具來看程序的執(zhí)行過程:
            2、java中類變量初始化的時(shí)機(jī):
            (1)定義類變量的時(shí)候指定初始值;
           ?。?)靜態(tài)初始化代碼塊中對(duì)類變量指定初值。
            這里類變量初始化的時(shí)機(jī)為兩處,而沒有在構(gòu)造器中這一說。這也很容易理解,因?yàn)轭愖兞渴穷惣虞d的時(shí)候執(zhí)行的初始化,且只執(zhí)行一次,而調(diào)用構(gòu)造器是對(duì)象實(shí)例化執(zhí)行的,每實(shí)例化一次對(duì)象,執(zhí)行一次。

          posted on 2014-08-12 09:34 順其自然EVO 閱讀(203) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄

          <2014年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 清徐县| 喀什市| 弥渡县| 柳河县| 临泉县| 金平| 青川县| 卓资县| 抚州市| 深圳市| 洪雅县| 织金县| 莫力| 同德县| 邢台县| 巴彦淖尔市| 龙州县| 渑池县| 信阳市| 宝清县| 普兰县| 耒阳市| 平陆县| 德庆县| 凤台县| 竹北市| 若尔盖县| 常德市| 刚察县| 丰县| 佛坪县| 安阳市| 开远市| 栾城县| 信丰县| 南阳市| 乐业县| 凤冈县| 册亨县| 天水市| 南宫市|