Java學習——2——對象操作

一、用引用操作對象

String s;
這裏只是創建reference,並不是對象
s並沒有與任何事物相關聯,向s發送消息會返回運行時錯誤

引用同時應該初始化
String s = "asdf";
注意:這裏字符串可以用帶引號的文本初始化。並不是通用的初始化方式

二、創建對象
new關鍵字

正確的通用初始化方法
String s = new String("asdf");

1)對象存儲位置

1.寄存器(最快的存儲區,不能直接控制)

2.堆棧(位於RAM中,向下移動指針分配新內存,向上釋放內存,Java系統必須知道存於其中所有項的生命週期,JAVA中某些數據存於其中,但Java對象不存於其中)

3.堆(通用內存池,位於RAM中,存放所有JAVA對象,在堆中編譯器不需要知道存儲的數據在堆中的存活時間,故堆中分配存儲空間有很大靈活性)

4.常量存儲(常量通常直接放在程序代碼內部)

5.非RAM存儲(如果數據完全存活於程序之外,它可以不受程序的任何控制,在程序沒有運行時也可以存在。如:/流對象/,/持久化對象/,

2)特例:基本類型

JAVA把基本類型變量存儲於堆棧中(高效),JAVA確定每種基本類型存儲空間大小,不隨機器硬件架構變化而變化(更可移植)。
char 16-bit (Unicode0—— Unicode2^16-1)
byte 8 bits ( -128——127)
short 16 bits (-2^15——2^15 - 1)
int 32 bits (-2^31——2^31 - 1)
long 64 bits (-2^63——2^63 - 1)
float 32 bits (IEEE754)
double 64bits (IEEE754)

重點:1.所有數值類型都有正負號,沒有無符號數值類型
2.基本類型有包裝器類,可以在堆中創建非基本對象,用來表示非基本類型。

//包裝器類
char c = ‘x’;
Character ch = new Character(c);
OR
Character ch = new Character(‘x’);
//SE5中可自動的把基本類型轉換爲包裝類型,並可以反向轉換
Character ch = ‘x’;
char c = ch;
3.高精度數字
Java提供了兩個用於高精度運算的類,BigIntegerBigDecimal(兩者沒有對應的基本類型,以方法調用, 操作同intfloat

3) JAVA數組
JAVA數組
1.會被初始化(創建一個數組對象==創建一個引用數組,每個引用自動初始化爲爲特定的關鍵字NULL,基本數據類型數組初始化:所佔內存全部置0;)
2.不能在它的範圍外被訪問

三、永遠不需要銷燬對象

1)作用域
花括號決定作用域

注:以下代碼不適用於JAVA,但是可用於C/C++

  {
    int x = 12;
    {
      int x = 96;//illegal in java
    }
  }
發佈了24 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章