1、數(shù)據(jù)存儲(chǔ)在什么地方
1)寄存器。
2)堆棧。對(duì)象的引用
3)堆。對(duì)象
4)常量存儲(chǔ)。代碼中或者ROM
5)非RAM存儲(chǔ)。流對(duì)象和持久化對(duì)象(硬盤中);
堆棧位于RAM中,通過堆棧指針的向上向下移動(dòng)分別來釋放分配存儲(chǔ),需要知道存儲(chǔ)在堆棧中所有項(xiàng)的生命周期,所以對(duì)于對(duì)象不是很靈活,只存儲(chǔ)對(duì)象的引用;堆比較靈活,不需要知道存儲(chǔ)在其中的數(shù)據(jù)存活多長時(shí)間,適合于存儲(chǔ)對(duì)象,代價(jià)是用堆存儲(chǔ)分配和清理比用堆棧需要更多的時(shí)間。堆里的對(duì)象通過垃圾回收器來釋放內(nèi)存。
2、基本類型
java基本類型優(yōu)點(diǎn):任何機(jī)器上所占的存儲(chǔ)空間相同。
所有數(shù)值都有正負(fù)號(hào),java中沒有無符號(hào)的數(shù)值類型。
boolean類型所占存儲(chǔ)空間的大小沒有指定,僅定義為能夠取字面值true和false。
Java提供了兩個(gè)用于高精度計(jì)算的類:BigInteger和BigDecimal。雖然他們大體上屬于“包裝類”的范疇,但是沒有對(duì)應(yīng)的基本類型。
BigInteger支持任意精度的整數(shù)。也就是說,在運(yùn)算中,可以準(zhǔn)確的表示任何大小的整數(shù)值,而不會(huì)丟失任何信息。
BigDecimal支持任意精度的定點(diǎn)數(shù)。例如,可以用它進(jìn)行精確的貨幣運(yùn)算。
3、java中不允許將一個(gè)非布爾值當(dāng)做布爾值在邏輯表達(dá)式中使用。int a,b; a && b是錯(cuò)誤的。
4、浮點(diǎn)數(shù)做比較的時(shí)候要注意,涉及到精度問題。
posted on 2012-06-18 10:57
醬醬小 閱讀(54)
評(píng)論(0) 編輯 收藏