變量其實是內存中保留的一個區域用來存儲一些值,這也就是說,當我們創建一個變量時,我們也就在內存中保留了一小塊存儲空間。
根據變量指定的數據類型,操作系統分配存儲空間並決定這一塊保留空間能存儲哪些內容。因此,我們通過給變量指定不同的數據類型,就可以在這些變量中存放整型數據,小數型數據或字符型數據。
往大的分類上來說,Java中有兩種數據類型:
- 原始數據類型
- 引用(對象)數據類型
原始數據類型
Java支持8種原始數據類型。原始數據類型在Java語言中被預先定義了,定義這類數據類型時只需使用Java中的關鍵字即可。我們來具體看下這8種數據類型。
byte(字節)類型
- byte數據類型是8比特位帶符號的二進制補碼整型
- 允許存儲的最小值是-128(-2^7,-2的7次方)
- 最大值是127(2^7-1)
- 默認值是0
- byte數據類型是用於保存大型數組時節省內存空間,大多數時候是替代int類型,因爲byte類型佔用的存儲空間只有int類型的四分之一。
- 用法示例:byte a = 100, byte b = -50
short(短整型)類型
- short數據類型是16比特位帶符號的二進制補碼整型
- 允許存儲的最小值是-32768(-2^15)
- 最大值是32767(2^15-1)
- short數據類型和byte類型一樣都可以用來節省內存空間,short類型佔用的空間是int類型的一半
- 默認值是0
- 用法示例:short s = 10000, short r = -20000
int(整型)類型
- int數據類型是32比特位帶符號的二進制補碼整型
- 最小值是-2,147,483,648(-2^31)
- 最大值是2,147,483,647(2^31-1)
- 在不關心內存開銷的情況下,int類型通常用於整型的默認數據類型
- 默認值是0
- 用法示例:int a = 100000,int b = -200000
long(長整型)類型
- long數據類型是64比特位帶符號的二進制補碼整型
- 最小值是-9,223,372,036,854,775,808(-2^63)
- 最大值是9,223,372,036,854,775,807(2^63-1)
- long類型一般用於超過int類型數值範圍的情形
- 默認值是0L(注意後面有個L)
- 用法示例:long a = 100000L, long b = -20000L
float(單精度浮點型)類型
- float是IEEE 754標準下的單精度浮點型,佔32比特位
- float主要用在保存包含浮點數的大型數組時,可以節省存儲空間
- 默認值是0.0f(注意後面有個f)
- float不能被用於存儲精度非常高的數值,例如貨幣計量
- 用法示例:float f1 = 234.5f
double(雙精度浮點型)類型
- double數據類型是IEEE 754標準下的雙精度浮點型,佔64比特位
- double類型通常是十進制數值默認使用的數據類型,通常也是默認選擇使用這個類型。
- double類型不應該被用於精度非常高的數值,例如貨幣計量
- 默認值是0.0d
- 用法示例:double d1 = 123.4
boolean(布爾)類型
- boolean類型表示1個比特位的信息
- boolean類型只有兩種取值:true和false
- 這個數據類型用於簡單的真/假條件判斷標識
- 默認值是false
- 用法示例:boolean one = true
char(字符)類型
- char數據類型是單個的16比特位的Unicode字符
- 最小的值是字符'0',也就是Unicode編碼'\u0000'
- 最大的值是Unicode編碼'\uffff'
- char類型可以用於存儲任意字符
- 用法示例:char letterA = 'A'
引用數據類型
- 引用變量由類中定義的構造器創建,其被用於訪問對象,這種變量被聲明爲一種不可改變的特定類型,例如前面章節中提到的Employee和Puppy類等等。
- 類對象和各種類型的數組變量都屬於引用數據類型。
- 所有引用變量的默認值都是null。
- 引用變量可以被用來指向聲明類型或兼容類型的任何對象。
- 用法示例:Animal animal = new Animal("dog");
Java轉義字符
轉義字符指的是一些能表示源碼固定值的字符,在代碼中可以直接替代而不需要經過計算。字符可以分配給任何原始類型變量,例如:
byte a = 68;
char a = 'A';
byte,int,long和short可以被表示爲10進制,16進制或8進制。數值前面加上0表示8進制,數值前面加0x表示16進制。這些數值前面的0和0x就是用於轉義的。
int decimal = 100;
int octal = 0144;
int hexa = 0x64;
Java中字符串的表示方法和其它編程語言中的基本類似,都是用雙引號引起來的中間部分的一串字符。下面是幾個字符串的例子:
"Hello world"
"two\nline"
"\"This is in quotes\""
String和char類型的變量值可以用Unicode來表示,例如:
char a = '\u0001';
String a = "\u0001";
Java語言中支持一些用於String和char類型中的轉義字符,有這些:
符號 | 字符含義 |
---|---|
\n | Newline,換行 (0x0a) |
\r | Carriage return,回車 (0x0d) |
\f | Formfeed,換頁 (0x0c) |
\b | Backspace,退格 (0x08) |
\s | Space,空格 (0x20) |
\t | tab,製表符 |
\" | Double quote,雙引號 |
\' | Single quote,單引號 |
\\ | backslash,反斜槓 |
\ddd | Octal character,八進制字符 (ddd) |
\uxxxx | Hexadecimal UNICODE character,十六進制Unicode編碼 (xxxx) |
本篇小結
更多交流,歡迎加羣(584017112):