如果我們說另一種不同的語言,那么我們就會發(fā)覺一個有些不同的世界。
——Luduing Wittgerstein(1889~1951)
*用引用操作對象,引用就像一個門牌號,對象就是這個門牌號相對應的住戶,有了門牌號可以像這個住戶發(fā)送信件。當然門牌號也可以對立存在,沒有相對應的住戶,只是在向這個住戶發(fā)送信件的時候會發(fā)生錯誤。
*所有的對象都必須是你去創(chuàng)建。
*有五個不同的地方可以存儲數(shù)據(jù):
1)寄存器。最快的存儲區(qū),位于處理器內部。不能直接控制,不能感覺到寄存器的存在。
2)堆棧。位于通用RAM(隨機訪問存儲器)中,速度僅次于存儲器。堆棧指針向下移動,則分配新的內存;諾向上移動,則釋放內存。
3)堆。一種通用的內存池(也位于RAM區(qū)),用于存放所有的Java對象。好處是編譯器不需要知道存儲的數(shù)據(jù)在堆里存活多少時間。壞處是分配和清理必要堆棧進行存儲需啊喲更多的時間。
4)常量存儲。直接存放在代碼內部,因為永遠不會改變。可以選擇存放在ROM(只讀存儲)中。
5)非RAM存儲。完全存活在程序之外,在程序沒有運行是也可以存在。比如流對象和持久化對象。
*基本對象存儲于堆棧中。基本類型有:
*boolean類型所占存儲空間的大小沒有明確指定,僅定義為能夠取字面值true或false。
*高精度數(shù)字BigInteger(支持任意井隊的整數(shù))和BigDecimal(支持任何精度的定點數(shù))。
*在C和C++中將較大作用域的變量“隱藏”起來的做法,在Java中是不允許的。
*定義一個類,就可以在類中設置兩種元素:字段(數(shù)據(jù)成員)和方法(成員函數(shù))。
*基本成員的默認值:(并不使用于“局部”變量,即并非某個類的字段)
*字符串中的每個字符的尺寸都是16位(2個字節(jié),以此來提供對Unicode字符集的支持)。
*static作用于字段時改變數(shù)據(jù)的創(chuàng)建方式(因為static字段對每個類來說都只是一份存儲空間,而非static字段則是對每個對象有個存儲空間),但是如果static作用于某個方法,差別缺沒有那么大。static方法可以創(chuàng)建或使用與其他類型相同的被命名對象,因此,static方法常常拿來做“牧羊人”的角色,負責于看護于其隸屬同一類型的實例群。
*注釋有兩種風格(/*........*/和//.......);注釋文檔(/**........*/)。使用javadoc的方式有兩種嵌入式Html或使用“文檔標簽”。
*標簽示例:
@see:引用其他類
{@link package.class#member label}:只用于行內,并且用“l(fā)abel”作為超鏈接文本。
{@docRoot}:該標簽產(chǎn)生到文檔根目錄相對路徑,用于文檔頁面的顯式超鏈接。
{@inheritDoc}:該標簽從當前這個類的最直接的基類中繼承相關文檔到當前文檔注釋中。
@version:可以是任何你認為適合包在版本中的說明。
@author:可以是你的姓名,郵件或者其他的信息。
@since:允許你指定程序代碼最早使用的版本。
@param:使用在方法中,表示參數(shù)。
@return:使用在方法中,表示返回值的描述。
@throws:描述拋出的異常。
@deprecated(@Deprecated):表示建議用戶不要再使用的舊特性。