變量類型
變量類型有兩種:一種是清涼的 primitive 主數(shù)據(jù)類型,一種是香辣的對象引用。
變量必須擁有類型,另一條規(guī)則是必須要有名稱。
變量裝載
編譯器不允許將大杯的內容放到小杯中,但反過來呢?可以。
引用變量有多大?
不知道,除非你跟某個 Java 虛擬機開發(fā)團隊的人有交情,不然你是不會知道飲用是如何表示的。其內部有指針,但你無法也不需要存取。若你是要討論內存分配的問題時,最需要關心的應該是需要建立多少個對象和引用,以及對象的實際大小。
是否意味著所有的對象引用都具有相同的大小,而不管它實際上所引用的對象大小?
是的,對于任意一個 Java 虛擬機來說,所有的引用大小都一樣,但不同的 Java 虛擬機間可能會以不同的方式來表示引用。
可以對引用變量進行運算嗎,就像 C 語言那樣?
不行。請跟我重復念一萬遍:“Java 不是 C”。
對象引用
HeadFirst:在運行期間能控制不同的對象嗎?像是引用到狗對象的 5 分鐘后又去引用皮卡丘對象?
Reference:當然不是啦,被聲明成什么我就是什么。如果我是個 Dog 遙控器,就不能指向……_啊,對不起,我是說引用到 Dog 以外的事物。
HeadFirst:你是說你只能引用單一的 Dog ?
Reference:錯了,我可以引用某個 Dog,5 分鐘后又去引用另外一個 Dog。只要是 Dog 就行,因為我可以被轉換,就像重新設定遙控器一樣。除非……算了。
HeadFirst:說呀,勇敢地說出來
Reference:說完天都亮了……先簡單說一下好了,如果我被標記成 final 的話,一旦被指派給某個 Dog 之后我就不能賦值給這個特定 Dog 之外的任何事物。也就是說被固定下來了。
重復
Java 有 3 種循環(huán)結構:while 循環(huán)、do-while 循環(huán)、for 循環(huán)。
Java 中可以用 integer 類型作為 while 的條件判斷嗎?
不行,Java 中的 integer 與 boolean 兩種類型并不相容。你只能用下面這樣的 boolean 變量來測試。