標籤:通過 初始化 技術 沒有初始化 程式 空間 color 堆棧 學習java
今天是我學習編程以來第一次寫部落格,記下平日學習所得,本來這幾日都在學習web架構 但覺得梳理一下之前所學很有必要。畢竟之前學習Java感覺很粗略只是以考試為目的。所以就以《Thinking in Java》一書為主對Java從頭鞏固一下。查缺補漏的同時更能加深理解。
一切都是對象
在C++中我們知道用指標操控對象,但在Java中幾乎一切都是對象,這就簡化了文法。但需要注意的是Java中我們是通過操縱標識符來操縱對象。也就是標識符其實是對對象的一個引用。一定要有引用才能操縱對象,但是有引用可以沒對象。也就是我們可以擁有一個引用但不一定要與一個對象相關聯。例如
1 String s;
此事給s發送資訊就會報錯,因為這個引用是空的。所以編寫程式時為了安全通常建立引用都要初始化。
而當我們建立引用時通常用new操作符來關聯一個對象。而且new不僅建立了對象還給出了怎樣產生這個對象的資訊。所以在Java中所有的對象都是我們自己建立的。Java提供了大量類型我們自己也可以建立類型。但是這些類型有些程式設計中會經常用到需要特殊對待,這一系列類型就是基本類型。而之所以特殊對待是因為new是將Object Storage Service在堆中。而這對一些簡單的小的變數不是很有效。所以對這種類型Java與C++一樣是建立了一個不是引用的變數,這個變數儲值並直接置於堆棧中。所以每種基本類型的儲存空間大小是不變的。每個基本類型都有封裝器類可以在堆中建立與基本類型對應的對象,而在之後我會詳述封裝基本類型的原因。
Java中值得注意的一點是我們不需要去銷毀對象,所有的清理工作都由Java自己去完成。
1 { 2 String s = new String("1"); 3 }//範圍終點 引用s在範圍終點消失了,而s指向的對象仍佔據記憶體空間。實際上用new建立的對象是會一直保留下去,只要你需要,因為Java本身的記憶體回收機制所以我們不需擔心釋放記憶體的事。
類
既然Java中一切都是對象,那麼我們就用類來決定一類對象的外觀和行為。而在Java中,我們所做的工作就是定義類,產生那些類的對象以及發送資訊給那些對象。而定義一個類就可以在類中設定兩種元素:欄位和方法。而當類的某個成員是基本類型時且沒有初始化Java也會給他一個預設值。但這種初始化的方法並不適用於方法中。
第一次寫博不太懂排版,也不想寫太多,權當筆記了。
對Java對象的認識與理解