《JAVA編程思想》閱讀筆記 第2章 一切都是對象

對象存儲

存儲位置 說明
寄存器 位於處理器內部,速度最快,開發人員不可以直接控制,也無法在程序中感受到其存在
堆棧 位於 RAM 中,可通過堆棧指針從處理器獲得直接支持。指針上移則釋放內存,指針下移則分配內存。java 必須知道存儲於該處的所有項的確切生命週期,以便於移動指針。由於該約束限制了靈活性,所以 java 對象不存放於此。
位於 RAM 的通用內存池,用於存放所有 java 對象。與堆棧相反,堆不需要知道數據的生命週期,也因此非常靈活。執行 new 的創建代碼,就能夠自動進行存儲分配。靈活性的代價是,存儲分配與清理需要耗費更多時間。
常量存儲 常量通常直接存儲於代碼內部。在嵌入式系統中,常量會存儲在 ROM 中。
非 RAM 存儲 可以存活於程序以外的數據,如流對象與持久化對象,在需要時可以恢復成常規的基於 RAM 的對象

java 確定每種基本類型所佔用的存儲空間大小,也因此可移植性更強。唯一的例外是, boolean 類型沒有指定所佔空間,僅僅定義爲字面量 true 與 false。

java 用於高精度計算的類:BigInteger 與 BigDecimal 。這兩個包裝類沒有對應的基本類型,但是能作用於 int 與 double 的操作,也同樣能作用於這兩個類。以方法調用的方式。

java 會自動給類的成員變量賦予默認初始值,而對於局部變量則不會。所以,在方法中定義變量必須明確指定初始化值,否則會出現編譯錯誤。

如果方法的類型爲 void,那麼 return 關鍵字的作用只是用於退出方法,可以在任何地方返回。

將事物聲明爲 static 時,意味着不會與包含其的類的任何對象相關聯,所以即使不存在對象也可直接訪問。將一個字段聲明爲 static 後,即使被不同的對象調用,所訪問的仍然是同一個空間,具有相同的值(static 字段對於每個類來說只有一份存儲空間)。class Test { static int i=47;Test t1 = new Test(); Test t2 = new Test();},此處 t1.i 與 t2.i 指向同一存儲空間。 對於被 static 修飾的變量以及方法,可以通過傳統的對象名引用,也可以直接使用類名進行引用。

java.lang 包是默認導入到每一個 java 文件中的,所以其中的類能夠被直接使用。

javadoc 只能爲 public 以及 protected 成員進行文檔註釋,其餘類型成員的文檔註釋將被忽略。因爲只有這兩類的成員能在文件外被使用。

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