1. 程式人生 > >JAVA程式設計思想學習筆記(二)一切都是物件

JAVA程式設計思想學習筆記(二)一切都是物件

一切都是物件

用引用操作物件

用一個類名,宣告一個變數,就是聲明瞭一個引用,比如類String

String s;

s就是類String的一個引用,引用並不是一個物件,但是它是可以控制相應的物件,相當於遙控器。引用不會分配儲存空間,new個物件之後才會分配空間。

必須由你建立所有物件

有5個不同的地方可以儲存資料:

  1. 暫存器
    最快的儲存區,但是不能直接控制。
  2. 堆疊
    位於通用RAM,通過堆疊指標使用,指標下移分配新記憶體,上移釋放記憶體。是一種快速有效的分配儲存方法。特別的,物件的引用存放在這裡。

  3. 一種通用記憶體池,用於儲存所有JAVA物件。
  4. 常量儲存
    常量值通常直接存放在程式程式碼內部,這樣做是安全的,因為它們永遠不會
    被改變。
  5. 非RAM儲存
    如果資料完全存活於程式之外,那麼它可以不受程式的任何控制,在程式沒有執行時也可以存在。兩個基本例子就是流物件持久化物件
    特例,基本型別:
    對於基本型別,與c相同,建立一個並非引用的變數,這個變數的值儲存在堆疊中。基本型別都有包裝器類,使得可以在堆建立一個非基本物件。
    在這裡插入圖片描述
    除此之外,還提供了兩個高精度計算的類:BigInteger和BigDecimal

永遠不需要銷燬物件

在java裡,不用像C++那樣,考慮物件的銷燬問題。垃圾回收器機制幫助程式設計師監控每一個用new生成的物件,一旦一個物件不會再引用了,就會自動銷燬該物件。

建立新的資料型別:類

類用class關鍵字來定義,類的成員變數會有預設值,即不初始化也不會像C++那樣得到任意值,雖然有時候這個預設值對於你的程式來說,並不適用。
預設值表如下:
在這裡插入圖片描述
另外,值得注意的是:只有類的基本成員變數會有預設值,如果是一個區域性變數,即非類的成員變數的話,這個變數的值得到的也可能是任意值。

static關鍵字

static定義靜態成員變數和靜態方法,static宣告的變數和方法,是這個類所有物件共享的,同時可以不建立物件,可以直接使用類名進行呼叫。例如:

class A{
	static int i=1;
}

A a=new A();
a.i++;
A.i++;

最後輸出i的值為3,因為無論是物件還是類名,指向的都是同一個i。