1. 程式人生 > >對Java對象的認識與理解

對Java對象的認識與理解

創建類型 鞏固 當我 com 編寫 回收 jpg 回收機制 span

  今天是我學習編程以來第一次寫博客,記下平日學習所得,本來這幾日都在學習web框架 但覺得梳理一下之前所學很有必要。畢竟之前學習Java感覺很粗略只是以考試為目的。所以就以《Thinking in Java》一書為主對Java從頭鞏固一下。查缺補漏的同時更能加深理解。

  一切都是對象

  在C++中我們知道用指針操控對象,但在Java中幾乎一切都是對象,這就簡化了語法。但需要註意的是Java中我們是通過操縱標識符來操縱對象。也就是標識符其實是對對象的一個引用。一定要有引用才能操縱對象,但是有引用可以沒對象。也就是我們可以擁有一個引用但不一定要與一個對象相關聯。例如

1 String s;

  此事給s發送信息就會報錯,因為這個引用是空的。所以編寫程序時為了安全通常創建引用都要初始化。

  而當我們創建引用時通常用new操作符來關聯一個對象。而且new不僅創建了對象還給出了怎樣產生這個對象的信息。所以在Java中所有的對象都是我們自己創建的。Java提供了大量類型我們自己也可以創建類型。但是這些類型有些程序設計中會經常用到需要特殊對待,這一系列類型就是基本類型。而之所以特殊對待是因為new是將對象存儲在堆中。而這對一些簡單的小的變量不是很有效。所以對這種類型Java與C++一樣是創建了一個不是引用的變量,這個變量儲值並直接置於堆棧中。所以每種基本類型的存儲空間大小是不變的。每個基本類型都有包裝器類可以在堆中創建與基本類型對應的對象,而在之後我會詳述包裝基本類型的原因。

技術分享圖片

  Java中值得註意的一點是我們不需要去銷毀對象,所有的清理工作都由Java自己去完成。

   1 { 2 String s = new String("1"); 3 }//作用域終點 引用s在作用域終點消失了,而s指向的對象仍占據內存空間。實際上用new創建的對象是會一直保留下去,只要你需要,因為Java本身的垃圾回收機制所以我們不需擔心釋放內存的事。

  類

  既然Java中一切都是對象,那麽我們就用類來決定一類對象的外觀和行為。而在Java中,我們所做的工作就是定義類,產生那些類的對象以及發送信息給那些對象。而定義一個類就可以在類中設置兩種元素:字段和方法。而當類的某個成員是基本類型時且沒有初始化Java也會給他一個默認值。但這種初始化的方法並不適用於方法中。

  第一次寫博不太懂排版,也不想寫太多,權當筆記了。

對Java對象的認識與理解