1. 存儲位置
寄存器:位于處理器內(nèi)部目胡,不能直接控制
堆棧:位于RAM中咐汞,通過堆棧指針移動可以進行內(nèi)存分配和釋放。java系統(tǒng)必須知道存儲在堆棧內(nèi)所有項的確切生命周期羡铲,以便移動指針(這限制了程序的靈活性)嫩与,對象引用和基本類型就存儲在堆棧中(函數(shù)執(zhí)行)寝姿。
堆:用于存放所有java對象,編譯器不需要知道其存活多長時間划滋。只要new即可在堆中分配会油。
常量存儲:通常直接存放在代碼內(nèi)部。嵌入式系統(tǒng)可能存放在ROM中
非RAM存儲:流對象(對象轉(zhuǎn)化為字節(jié)流被發(fā)送給另一個機器)和持久化對象(磁盤)
2. 類型
基本類型:
- boolean古毛,char(16 bit),byte(8 bit),short(16 bit)稻薇,int(32 bit)嫂冻,long(64bit),float(32 bit)塞椎,double(64 bit)桨仿,void
- 基本類型變量直接存儲值并置于堆棧中
- 基本類型具有包裝器類,使得可以在堆上創(chuàng)建一個非基本類型對象案狠。
- 自動包裝功能將自動地將基本類型轉(zhuǎn)換為包裝器類型服傍。
- 作為局部變量如果沒有被初始化,java會在編譯時返回錯誤骂铁。
高精度數(shù)字:
- BigInteger(任意精度整數(shù))和BigDecimal(任意精度定點數(shù))吹零,沒有對應(yīng)的基本類型。
- 必須以方法調(diào)用的方式取代運算符來實現(xiàn)拉庵。
數(shù)組:
- java會確保數(shù)組會被初始化灿椅,且保證在范圍內(nèi)訪問(少量的內(nèi)存開銷)。
- 對于基本類型的數(shù)組钞支,編譯器保證了數(shù)組的初始化茫蛹,全部置為0。
- 當(dāng)創(chuàng)建一個數(shù)組對象烁挟,實際上就是創(chuàng)建了一個引用數(shù)組婴洼,其中每個引用都會被初始化為null。
類:
- 類中包含兩類元素:字段和方法
- 字段
字段可以是任何類型的對象撼嗓,如果是引用柬采,必須初始化該引用,以便與實際對象相關(guān)聯(lián)静稻。
如果字段是基本數(shù)據(jù)類型警没,java會確保它獲得一個默認值。(這并不適用于局部變量振湾,即非類字段) - 方法
返回類型描述了調(diào)用方法之后的返回值杀迹。
參數(shù)列表給出了要傳遞給方法的類型和名稱。對于對象來說押搪,傳遞的是對象的引用树酪,而基本數(shù)據(jù)類型例外。
方法名稱和參數(shù)列表(合起來稱為方法簽名)唯一標(biāo)識了方法大州。
調(diào)用方法通常被稱為發(fā)送消息給對象续语。 - static
當(dāng)域被聲明為static,意味著這個域不與任何對象實例關(guān)聯(lián)在一起厦画。
對于static方法疮茄,不能簡單地調(diào)用其他非static域或方法而沒有指定某個命名對象滥朱。 - static的需求
只想為某特定域分配單一存儲空間,而不去考慮究竟要創(chuàng)建多少對象力试。
希望某個方法不與包含它的類的任何對象關(guān)聯(lián)在一起徙邻,即使不創(chuàng)建對象,也能調(diào)用該方法畸裳。
static通常用來當(dāng)做牧羊人角色缰犁,負責(zé)看護與其隸屬同一類型的實例群。
對象:
- 操縱對象的標(biāo)識符是對象的一個引用
- 引用不一定需要和對象關(guān)聯(lián)怖糊,如果向沒有關(guān)聯(lián)對象的引用發(fā)送消息帅容,會返回一個運行時錯誤。
- 對象只要需要伍伤,就可以一直保留下去并徘。
3. 注釋
注釋文檔:
- 將代碼與文檔鏈接起來,必須使用特殊的注釋語法來標(biāo)記文檔嚷缭,還需要一個工具提取注釋javadoc
- javadoc查找程序內(nèi)的特殊注釋標(biāo)簽饮亏,解析這些標(biāo)簽標(biāo)記的信息,也將類名或方法提取
語法:
- 所有的javadoc命令只能在‘/**’注釋中出現(xiàn)阅爽。
- 三種類型的注釋文檔路幸,分別對應(yīng)于位于注釋后面的三種元素:類,域和方法
- javadoc只能為public付翁,protected成員進行注釋简肴。
- 使用javadoc的方式主要有兩種:嵌入式HTML和文檔標(biāo)簽。
嵌入式HTML:
- 可以通過html元素對注釋進行格式化
- 不要在嵌入式HTML中使用標(biāo)題標(biāo)簽<h>
標(biāo)簽:
- @see:引用其他類的文檔百侧。
- @version:包含版本說明的重要信息砰识。
- @author:作者信息。
- @since:指定程序代碼的最早使用版本佣渴。
- @param:參數(shù)和具體信息
- @return:返回值描述
- @throws:異常和具體說明
- @Deprecated:建議用戶不要再使用的特性
4. 其他
- java的作用域不允許隱藏:較大作用域的變量不能再較小作用域中被再次定義辫狼。
- java.lang是默認導(dǎo)入到每個java文件中。