java編程思想讀書(shū)筆記
存放數(shù)據(jù)的地方:
1.寄存器(Registers):位于處理器內(nèi)部,速度最快,程序員無(wú)法直接操縱.
2.棧(Stack):位于一般的RAM當(dāng)中,處理器由指針提供支持.因?yàn)橐苿?dòng)指針,所以存放在stack中的數(shù)據(jù)的實(shí)際大小和存活時(shí)間都是明確的.reference可以置入其中,但是java對(duì)象不可以.
3.堆(Heap):位于RAM當(dāng)中,放置所有的java對(duì)象.new的對(duì)象都是自Heap分配空間的.
4.靜態(tài)存儲(chǔ)空間(Static storage):static可以將某個(gè)對(duì)象內(nèi)的特定成員置為靜態(tài).java對(duì)象不可能置入此地.
5.常量存儲(chǔ)空間(Constant storage):位于ROM中.
6.Non-RAM存儲(chǔ)空間:streamed objects和persistent objects.
兩種型別
1.對(duì)象型別:object type
2.基本型別:primitive type 不以new分配空間,而是一種automatic變量直接存放數(shù)據(jù)值,置于stack
如果想在heap內(nèi)代替基本型別,可以適用外覆類.比如Character(char)
類的初始化過(guò)程
1.當(dāng)一個(gè)對(duì)象首次生成,或者當(dāng)類的static函數(shù)和static對(duì)象首次被訪問(wèn),java inter Preter首先根據(jù)classpath環(huán)境變量來(lái)查找該對(duì)象.
2.一旦類被裝載,就執(zhí)行它的static初始動(dòng)作,因此static初始化動(dòng)作僅發(fā)生一次,就是在Class對(duì)象首次被裝載時(shí).
3.當(dāng)new Class(),則先為class對(duì)象在Heap上分配足夠的存儲(chǔ)空間.
4.該存儲(chǔ)空間先被清空.并自動(dòng)將class對(duì)象內(nèi)部所有隸屬基本類型的數(shù)據(jù)設(shè)為缺省值,并將reference置為null
5.執(zhí)行所有出現(xiàn)于數(shù)據(jù)定義處的初始化動(dòng)作
6.執(zhí)行構(gòu)造函數(shù)
posted on 2005-08-26 15:24 幸福是把溫暖的槍 閱讀(284) 評(píng)論(0) 編輯 收藏 所屬分類: java