天天看點

資料類型、變量、數組類

感言:JAVA是一種強類型語言,JAVA的安全性和健狀有部分來源與此,JAVA區分大小寫。定義資料的時候可以有兩種寫法。

(先聲明變量)<b>double</b> num11;

 (不預先定義,直接上,學名叫“<b>動态初始化</b>”)<b>float</b>

num = (<b>float</b>)1.3666222222222222222222222;

也可以這樣<b>float</b> num =

1.3666222222222222222222222f;

  num11 =

1.36662222222222222222222222222222222222222222

資料類型分基本類型和引用類型,基本類型無需NEW,隻要聲明就可以建立 int

data =

10,基本類型的運作速度快,是因為基本類型建立的并不是一個引用的“自動”變量,這個變量直接存儲“值”,并置于“堆棧”中(我在另一本關于虛拟機的書上看到的卻是說存在“寄存器”中,無論是在哪,肯定都比引用類型要高效是肯定的),JAVA中基本類型的存儲空間是固定不變的,見表。

引用類型需要用NEW來開創一個空間 new string

= "im new data",NEW将對象存于“堆”中

八大基本類型:

基本類型

最小值

大小

最大值

包裝器類型

預設值

boolena

-

Boolean

false

Char

Unicode 0

16-bit

Unicode 2(16次)-1

Character

‘\u0000’

Byte

-128

8 bits

+127

(byte)0

Short

-2(15次)

16 bits

+2(125次)-1

(short)0

Int

-2(31次)

32 bits

+2(31次)-1

Integer

Long

-2(63次)

64 bits

+2(63次)-1

0L

Float

Ieee754

0.0f

Double

0.0d

基本類型為什麼要有包裝類型,因為包裝類可以在堆中建立一個非基本對象,用來表示對應的基本類型。如下:

char c = 'x';

Character ch = new Character();

也可以這樣

Character ch = new Character('x');

1.5以上的自動拆裝箱功能可以直接:Character ch = 's';并可以反向轉換  char c = ch;

在實際的使用中,基本類型和包裝因型有什麼用呢?我一直想不太明白,後來總結了一下,大緻歸于下:

  int  

一般做為數值參數就夠了  

  integer  

一般做類型轉換的時候用的較

基本類型和引用類型的差別還于作用域

{

int = 10;

}

變量的作用域隻可用于域結束之前

String s = new String("aaa");

引用S在作用域終點就消失了,然而,S指向的的string對象仍繼續占據記憶體空間。由NEW建立的對象,會一直存在下去,當然了,有垃圾回收器在監視的它,有必要的時候會把它删除。

(位元組型,寬度8)Byte,(短整型,寬度16)short,(整型,寬度32)int,(長整型,寬度64)long

細節:

1.    

隻要整數表達式包含byte,short,int.整個表達式會被提升為int類型

2.    

類型決定行為,決定系統怎麼去處理它,而不是大小。

(單精度,位寬32)Float(最多顯示小數點後7位),(雙精度,位寬64)double(最多顯示小數點後16位),

他們其實差不多,都可以表示小數但有一定差別

FLOAT的占用空間隻有DOUBLE的一半,當值很大或很小時,會變的不精确。

超越函數,如SIN(),COS()等,傳回都是DOUBLE

在JAVA中,CHAR是用來存儲字元資料的。用Unicode來表示字元。

CHAR和String的差別:

原始資料類型(也稱基本資料類型)(primitive data type):byte,short, char, int,

long,float,double,boolean. 一共8種

對象(也稱引用類型)(Object):8中除外的都是對象,包括數組。

顯然char屬于基本資料類型(即原始資料類型),string屬于對象

BOOLEAN的值隻有真假。它有一個特點,它可以控制條件表達式。也就是說可以寫成IF(true)

 (不預先定義,直接上,學名叫“<b>動态初始化</b>”)<b>float</b> num =

(<b>float</b>)1.3666222222222222222222222;

5.變量

變量可以預先聲明,如:

int a,b;

也可以

int a =1,b=3;

也可以在程式中需要使用的時候進行動态聲明,從程式性能上來說,後期動态聲明更符合優化的目标。

變量聲明可以使用常量,當然也可以使用表達式。如 double a =

Math.sqrt(a*a+b*b);

6.數組

一:數組可以看成是多個相同類型的資料集合

二:數組變量屬于引用類型,數組也可以看成是對象,數組中的每一個元素相當于該對象的成員變量

三:

數組中的元素可以是任何資料類型,包括基本類型和引用類型。(除了基本類型以外,其它的全是引用類型)

建立一個數組 new type var[]