2004-09-27
學(xué)習(xí)java虛擬機(jī)規(guī)范之前,已經(jīng)有了心理的準(zhǔn)備,像我這種從應(yīng)用中開(kāi)始真正了解計(jì)算機(jī)的人,可能會(huì)遇到許許多多的問(wèn)題,很多關(guān)于底層的,硬件級(jí)別的概念可能會(huì)無(wú)法理解,但是只要能開(kāi)始,就是進(jìn)步,不是嗎。
第一章:前言
************************************************************************************************
java虛擬機(jī)假定任何實(shí)現(xiàn)技術(shù)或主機(jī)平臺(tái),它并不非得是解釋型的,它也可以像傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言一樣,通過(guò)把它的指令集編譯成一個(gè)實(shí)際的CPU指令集來(lái)實(shí)現(xiàn)。它也可以直接用微代碼或者直接用芯片來(lái)實(shí)現(xiàn)。
?
第二章:Java概念
(這個(gè)部分是對(duì)Java語(yǔ)言的介紹,這里羅列出一些比較細(xì)節(jié)的概念)
1、Java語(yǔ)言使用Unicode1.1.5版編寫。
2、除了注釋、字符、字符串、標(biāo)識(shí)符之外,Java程序的所有輸入元素都是ascii碼形式。
?? 測(cè)試證明變量定義可以使用中文。
3、字符串文字以及更一般的常數(shù)表達(dá)式的值的字符串,被用方法String.inter內(nèi)部化以共享惟一的實(shí)例。
4、整型和引用類型可以轉(zhuǎn)化為boolean型,非零和非null都為true。(以標(biāo)準(zhǔn)C++的方式x!=0和obj!=null)
5、三種引用類型:類引用,接口引用,數(shù)組引用,所有對(duì)象包括數(shù)組都支持Object類的方法。
6、執(zhí)行順序:裝載類---鏈接一個(gè)類型或者類(檢驗(yàn),準(zhǔn)備和可選的解析)---初始化(這個(gè)初始化可能引起相關(guān)父類的初始化動(dòng)作)
7、類實(shí)例退出的時(shí)候自動(dòng)的調(diào)用finalize()方法
8、類卸載的時(shí)候自動(dòng)調(diào)用classFinalize()方法。
9、虛擬機(jī)退出的條件:1、所有非守護(hù)線程中止。2、顯式調(diào)用了Runtime或者System的exit方法
************************************************************************************************
6、變量是一種存儲(chǔ)位置,有相應(yīng)的類型,稱為編譯期類型,可以是引用類型,也可以是基本類型。
?? 問(wèn)題:變量本身是怎樣的一個(gè)存在,它的結(jié)構(gòu)如何。
7、java語(yǔ)言中多次提到基本數(shù)值類型的特殊值NaN,但是不知道其表現(xiàn)和使用。
2004-6-3凌晨1點(diǎn),讀至2、16 執(zhí)行,31頁(yè)。
2004-6-3下午五點(diǎn):讀至34頁(yè)
2004-6-6晚上8:30-10:30,讀至第三章:java虛擬機(jī)結(jié)構(gòu):41頁(yè)
為了了解i=i++的奧秘,我提前閱讀了第八章:線程和鎖,好像能夠理解,結(jié)果又被全盤推翻了。(通查網(wǎng)上的說(shuō)法:i=i++的特殊之處在于i++,或者說(shuō)是++操作符的實(shí)現(xiàn),i++操作的方式是1:將i值拷貝一份到另一內(nèi)存區(qū)域,2、對(duì)原i值執(zhí)行++操作,3、將i++的結(jié)果放入新分配的區(qū)域內(nèi),而對(duì)于i=i++,就多了第四步:4、將i++值回寫到i的存儲(chǔ)區(qū)域中),但java為什么這么實(shí)現(xiàn)不是很清楚