《java編程思想》讀數筆記之---基礎雜談

一:用引用操作對象

這裏寫圖片描述

二:內存分配

        寄存器:
            最快的存儲區,位於處理器內部,數量有限,java程序員不能直接控制,在程序中感覺不到這塊區域的存在,但是c和c++允許建議向寄存器分配內存。
        堆棧:
            位於隨機訪問存儲區,堆棧指針可以獲得處理器的直接支持,堆棧指針下移獲得新內存,堆棧指針上移釋放內存,速度僅次於寄存器,創建程序時,java系統必須知道在堆棧內所有項的確切聲明週期,所以一般存java對象引用而不是存java對象。
        堆:
            也位於隨機訪問存儲區,是一種通用的內存池,編譯器不需要知道存儲於堆中數據的生命週期,分配存儲靈活,當需要一個對象時用new關鍵字,就可以在堆中分配內存,缺陷是分配和清理內存的時間較長。
        常量存儲:
            通常直接放在程序代碼內部,因爲它永遠不會被改變。
        非RAM存儲:
            數據完全存活於程序外部,可以不受程序的控制,程序沒有運行時也可以存在,比如流它可以從一臺電腦到另一臺電腦,還有持久化數據到硬盤。

三:基本類型(java中的基本類型都是小寫,包裝類型爲大寫)

java中存儲在堆棧中的基本數據類型

這裏寫圖片描述
另外java中還提供了可以支持任意精度整數的非基本數據類型BigIngeter,支持任意精度定點數的非基本數據類型的BigDecimal

四:基本成員的默認值

    若是基本數據類型,java中,即使沒有初始化java也會給其初始化一個默認值保證,初始化值爲下圖所示:

這裏寫圖片描述
注意:當變量爲成員變量時java纔會確保給其默認值,如果是局部變量那麼該值有可能是任意值java並不會自動給其初始化,自動初始化發生在構造器被調用之前。如下圖代碼。
這裏寫圖片描述
上圖中y是成員變量,所以其會被自動初始化,打印時編譯通過,而j是局部變量,所以打印編譯出錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章