變量就是用來(lái)儲(chǔ)存值而保留的內(nèi)存位置。這就意味著當(dāng)你創(chuàng)建一個(gè)變量時(shí)就會(huì)在內(nèi)存中占用一定的空間。
基于變量的數(shù)據(jù)類(lèi)型,操作系統(tǒng)會(huì)進(jìn)行內(nèi)存分配并且決定什么將被儲(chǔ)存在保留內(nèi)存中。因此,通過(guò)給變量分配不同的數(shù)據(jù)類(lèi)型,你可以在這些變量中存儲(chǔ)整數(shù),小數(shù)或者字字母。
Java 中有兩種有效地?cái)?shù)據(jù)類(lèi)型:
- 原始數(shù)據(jù)類(lèi)型
- 引用數(shù)據(jù)類(lèi)型
原始數(shù)據(jù)類(lèi)型
Java 支持 8 種原始數(shù)據(jù)類(lèi)型。原始數(shù)據(jù)類(lèi)型是由該語(yǔ)言預(yù)先定義的并用關(guān)鍵詞命名的。下面讓我們深入學(xué)習(xí)一下這 8 種數(shù)據(jù)類(lèi)型。
字節(jié)型(byte)
- 字節(jié)型是一種 8 位有正負(fù)的二進(jìn)制整數(shù)
- 最小值是 -128(-2^7)
- 最大值是 127(2^7-1)
- 默認(rèn)值為 0
- 字節(jié)型數(shù)據(jù)類(lèi)型主要是為了在大型數(shù)組內(nèi)節(jié)省空間,主要是替代整數(shù)由于字節(jié)型比整數(shù)小 4 倍。
- 例如:byte a = 100 , byte b = -50
短整數(shù)(short)
- 短整數(shù)是一種 16 位有正負(fù)的二進(jìn)制整數(shù)
- 最小值是 -32768(-2^15)
- 最大值是 32767(2^15-1)
- 短整數(shù)類(lèi)型的數(shù)據(jù)也可以像字節(jié)型一樣用于節(jié)省空間。短整數(shù)比整數(shù)小兩倍
- 默認(rèn)值為 0
- 例如:short s = 10000, short r = -20000
整數(shù)型(int)
- 整數(shù)型是一種 32 位有正負(fù)的二進(jìn)制整數(shù)
- 最小值是 - 2,147,483,648(-2^31)
- 最大值是 2,147,483,647(2^31 -1)
- 整數(shù)型一般默認(rèn)被應(yīng)用于整數(shù)值除非擔(dān)心內(nèi)存不夠用。
- 默認(rèn)值為 0
- 例如:int a = 100000, int b = -200000
長(zhǎng)整型(long)
- 長(zhǎng)整型是一種 64 位有正負(fù)的二進(jìn)制整數(shù)
- 最小值是 -9,223,372,036,854,775,808(-2^63)
- 最大值是 9,223,372,036,854,775,807 (2^63 -1)
- 這種數(shù)據(jù)類(lèi)型一般是在需要比整數(shù)型范圍更大時(shí)應(yīng)用。
- 默認(rèn)值為 0L
- 例如:long a = 100000L, int b = -200000L
浮點(diǎn)型(float)
- 浮點(diǎn)型數(shù)據(jù)是一種單精度的 32 位 IEEE 754 標(biāo)準(zhǔn)下的浮點(diǎn)數(shù)據(jù)。
- 浮點(diǎn)型數(shù)據(jù)主要是為了在大型浮點(diǎn)數(shù)字?jǐn)?shù)組中節(jié)約內(nèi)存。
- 默認(rèn)值是 0.0f。
- 浮點(diǎn)型數(shù)據(jù)不能用于如貨幣這樣的精確數(shù)據(jù)。
- 例如:float f1 = 234.5f
雙精度型(double)
- 雙精度型數(shù)據(jù)是一種雙精度的 64 位 IEEE 754 標(biāo)準(zhǔn)下的浮點(diǎn)數(shù)據(jù)。
- 這種數(shù)據(jù)類(lèi)型主要是默認(rèn)被用于表示小數(shù)的值,一般是默認(rèn)的選擇。
- 雙精度型數(shù)據(jù)不能用于如貨幣這樣的精確數(shù)據(jù)。
- 默認(rèn)值是 0.0d
- 例如:double d1 = 123.4
布爾型(boolean)
- 布爾型數(shù)據(jù)代表一個(gè)信息比特。
- 它只有兩個(gè)可能的值:真(true)和假(false)
- 這種數(shù)據(jù)類(lèi)型用于真假條件下的簡(jiǎn)單標(biāo)記。
- 默認(rèn)值是假(false)
- 例如:boolean one = true
字符型(char)
- 字符型數(shù)據(jù)是簡(jiǎn)單的 16 位 Unicode 標(biāo)準(zhǔn)下的字符。
- 最小值是: '\u0000' (或 0)。
- 最大值是: '\uffff' (或 65,535 )。
- 字符型數(shù)據(jù)可以用來(lái)儲(chǔ)存任意字母。
- 例如: char letter A(字符型的字母A) ='A'
引用數(shù)據(jù)類(lèi)型
- 引用數(shù)據(jù)類(lèi)型是由類(lèi)的編輯器定義的。他們是用于訪問(wèn)對(duì)象的。這些變量被定義為不可更改的特定類(lèi)型。例如:Employee, Puppy 等等。
- 類(lèi)對(duì)象和數(shù)組變量就是這種引用數(shù)據(jù)類(lèi)型。
- 任何引用數(shù)據(jù)類(lèi)型的默認(rèn)值都為空。
- 一個(gè)引用數(shù)據(jù)類(lèi)型可以被用于任何聲明類(lèi)型和兼容類(lèi)型的對(duì)象。
- 例如:Animal animal = new Animal("giraffe");
Java 常量
常量是代表固定值的源代碼。他們直接以代碼的形式代表而沒(méi)有任何估計(jì)。
常量可以被分配給任意的原始變量類(lèi)型。例如:
byte a = 68;
char a = 'A'
字節(jié)型,整數(shù)型,長(zhǎng)整型和短整型也可以由十進(jìn)制,十六進(jìn)制和八進(jìn)制計(jì)數(shù)系統(tǒng)表示。
當(dāng)用這些技術(shù)系統(tǒng)表示直接量時(shí),前綴 0 是為了標(biāo)明八進(jìn)制,前綴 0x 是為了標(biāo)明十六進(jìn)制。例如:
int decimal = 100;
int octal = 0144;
int hexa = 0x64;
Java 中的字符串型常量的規(guī)定和其他大多數(shù)語(yǔ)言一樣,也是要寫(xiě)在雙引號(hào)中間。字符串型直接量的例子如下:
"Hello World"
"two\nlines"
"\"This is in quotes\""
字符和字符串型常量可以包含任意的 Unicode 字母。例如:
char a = '\u0001';
String a = "\u0001";
Java 語(yǔ)言也支持一些特殊的轉(zhuǎn)義序列的字符和字符串直接量。他們是:
轉(zhuǎn)義字符 |
含義 |
\n |
換行 (0x0a) |
\r |
回車(chē) (0x0d) |
\f |
換頁(yè) (0x0c) |
\b |
退格 (0x08) |
\s |
空格 (0x20) |
\t |
tab |
\" |
雙引號(hào) |
\' |
單引號(hào) |
\ |
反斜杠 |
\ddd |
八進(jìn)制字符 (ddd) |
\uxxxx |
十六進(jìn)制 UNICODE 字符 (xxxx) |
接下來(lái)是什么呢?
本章向你介紹不同種類(lèi)的數(shù)據(jù)類(lèi)型,下一章講為你講解不同的變量類(lèi)型以及他們的用法。這將讓你能夠更好地理解他們?nèi)绾卧贘ava的類(lèi)和實(shí)例等等中的應(yīng)用。