2.一切都是對象

1.對象存在什麼地方。
a.寄存器
c和c++允許操作,java不允許。
b.堆棧
java的引用存這裏,java知道堆棧裏所有項的生命週期,以便上下移動。c和c++在此創建對象。
c.堆
存放java對象,編譯器不知道對象的存活週期。
d.常量存儲
直接存代碼內部。
e.靜態存儲區
static的字樣的數據存在這裏,ram,java對象則不存這裏。
f.非ram存儲
存活在程序之外,如流對象,對象轉化爲字節流發送給另一臺機器。
持久化對象,對象被放在磁盤上。

2.基本類型

new 的對象都在存在堆裏。基本類型由於簡單,所以存在棧裏,高效。

boolean
char    16bits
byte     8bits  -128  +127
short   16bits  from -32768 to 32767
int     32bits  from -2147483648 to 2147483647
long    64bits  from -9223372036854775808 to 9223372036854775807
float   32bits
double  64bits
void    

3.高精度數字
BigInteger 任意精度整數
BigDecimal 任意精度定點數。
速度換精度。

4.java數組
java數組確保初始化,且有範圍檢查,以少量內存開銷和運行時下標檢查爲代價換來安全性和效率提高。
java數組存基本類型的話,編譯器確保數組初始化爲零。

5.作用域
{
  int x=1;
 {
   int x=2;
 }
}
爲防止混亂,java認爲重複定義,c++則會隱藏較大作用域變量。

6.對象作用域

{
 String s = new String(“a string”);
}
作用域外 s引用失效。但是對象仍存在。

7.類的基本成員

當類的成員是基本類型,即使沒有初始化,也會確保有個默認值。
當變量作爲類的成員使用,java才確保給定默認值。(c++沒有這樣)
如果在某方法裏定義 int x;  x沒有初始化,可能範圍任意值。

8.方法名和參數列表 合成 方法簽名  唯一標識出某個方法。

實驗 public String method()
     private int  method()
被java認爲是同一方法,報錯。

9.註釋

常見的註釋 /*   */  或者//

註釋文檔  類,域,方法
//: object/Documentation1.java
/** A class comment */
public class Documentation1 {
  /** A field comment */
  public int i;
  /** A method comment */
  public void f() {}
} ///:~
 
還有一些標籤,如@author,@param,@return ,@Deprecated

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章