這是對java的再一次整合學習,在看《JAVA編程思想》後的一些記錄;理解不當歡迎指正;java
1.用引用操做對象,你擁有一個引用,並不須要有一個對象與之關聯:數據庫
eg:String s;編程
這裏建立的只是引用,並非對象;這裏其實至關於只是建立一個指針(有些不太恰當,但便於理解),但並無一個明確指向;數組
安全的建立:String s = "abc"; 或者String s = new String("abc");安全
2.存儲:學習
a.寄存器:這是最快的存儲區;寄存器根據需求分配,不能直接控制指針
b.堆棧:位於通用RAM中,能夠經過堆棧指針從處理器得到支持;通常對對象的引用的存儲;須要知道確切的生命週期;對象
c.堆:一種通用的內存池,用於存放全部的JAVA對象;不須要知道生命週期;生命週期
d.常量存儲:常量值內存
e.非RAM存儲:流對象和持久化對象(在其餘地方存儲,數據庫)
3.數組:
java確保數據組會被初始化,並且不能在它的範圍以外被訪問。這種範圍檢查,是以每一個數組上少許的內存開銷及運行時的下表檢查爲代價;
a:默認沒有初始化爲null;一旦java看到null,就知道這個引用尚未指向某個對象。
b:建立用來存放基本數據類型的數組;爲了確保初始化,置爲0;
4.做用域:做用域的位置有花括號決定
在C和C++中將一個較大的做用域的變量「隱藏」起來,java中不行:
eg:java中報錯,編譯器將報告x已經定義過;
{
int x = 12;
{
int x = 96;
}
}
a.對象的做用域:java對象不具有和基本類型同樣的生命週期;當new一個對象時,它能夠存活在做用域以外
{
String s = new String("abc");
}
引用s在做用域終點就消失了。而,s指向的對象仍然佔據內存;
爲了不「內存泄漏」,java自帶垃圾回收機制。
5.static關鍵字:
兩種狀況:第一種,只想爲某特定域分配單一存儲空間,不用考慮建立多少對象,或者不建立對象;
第二種,但願某個方法不包含與它的類的任何對象關聯在一塊兒,即沒建立對象能夠調用方法;
就是一個類定義了一個static數據成員,無論建立幾個該類對象,都不會再對該成員分配空間;全部對象共享一塊這一個數據成員;
6.javadoc:這是爲了方便管理程序,生成的註釋文檔;需本身配置;