書名: 零基礎學Java程序設計作者名: 祝明慧編著本章字數: 1393字更新時間: 2022-05-06 19:55:56
2.2.2 整數類型

在Java中表示整數后,Java會將整數保存。由于存儲方式不同,反過來又會影響整數的表示方式。Java語言提供了整型、短整型、字節型和長整型4種類型用來保存整數。下面將依次講解這幾種類型。
1.整型(int)
在Java語言中,整數的默認保存類型為整型。該類型占用4字節,如圖2.11所示。其中,每個方格表示1字節。

圖2.11 整型占4字節
助記:int是整型的英文單詞integer的縮寫,其發音為[??nt?d??(r)]。
查看計算機中整型占用的字節數,可以執行以下代碼:

運行結果如下:

其中,java.lang.Integer.SIZE獲取的是位數,所以需要除以8,才能獲取字節數。
整型的范圍為-231~231-1,即-2147483648~2147483647,如圖2.12所示。

圖2.12 整型的范圍
查看計算機中整型的范圍,可以執行以下代碼:

運行結果如下:

注意:\n是用來實現換行的。
注意:使用整型存儲整數時,這個整數不可以超出整型的范圍,即-231~231-1,否則程序會出現錯誤,如以下代碼:

由于2147483650超出了整型的范圍,所以會輸出以下錯誤信息:

2.短整型(short)
如果要表示的整數值比較小,仍然使用整型來表示,就會浪費空間。為了節省空間,Java語言提供了短整型。它比整型占用的空間要小,只使用2字節,如圖2.13所示。

圖2.13 短整型占2字節
助記:short是一個英文單詞,本身意思就是短,其發音為[??:t]。
查看計算機中短整型占用的字節數,可以執行以下代碼:

運行結果如下:

其中,java.lang.Short.SIZE獲取的是位數,所以需要除以8,才能獲取字節數。
短整型的范圍為-215~215-1,即-32768~32767,如圖2.14所示。

圖2.14 短整型的范圍
查看計算機中短整型的范圍,可以執行以下代碼:

運行結果如下:

注意:使用短整型存儲整數時,這個整數不可以超出短整型的范圍,即-215~215-1,否則程序會出現“過大的整數”這一錯誤。
3.字節型(byte)
如果要表達的整數值非常小,使用短整型仍然會造成空間浪費。這時,可以使用Java語言提供的字節型。它只占1字節,如圖2.15所示。

圖2.15 字節型占1字節
助記:byte是一個英文單詞,本身意思就是字節,其發音為[ba?t]。
查看計算機中字節型占用的字節數,可以執行以下代碼:

運行結果如下:

其中,java.lang.Byte.SIZE獲取的是位數,所以需要除以8,才能獲取字節數。
字節的范圍為-128~127,如圖2.16所示。

圖2.16 字節型的范圍
查看計算機中字節型的范圍,可以執行以下代碼:

運行結果如下:

注意:使用字節型存儲整數時,這個整數不可以超出字節型的范圍,即-128~127,否則程序會輸出“過大的整數”這一錯誤信息。
4.長整型(long)
如果要表示的整數非常大,超過整型可以表示的范圍,就需要使用Java語言提供的長整型。該類型占8字節,如圖2.17所示。

圖2.17 長整型占8字節
助記:long是一個英文單詞,本身意思就是長,其發音為[l??]。
查看計算機中長整型占用的字節數,可以執行以下代碼:

運行結果如下:

其中,java.lang.Long.SIZE獲取的是位數,所以需要除以8,才能獲取字節數。
長整型的范圍為-263~263-1,即-9223372036854775808~9223372036854775807,如圖2.18所示。

圖2.18 長整型的范圍
查看計算機中長整型的范圍,可以執行以下代碼:

運行結果如下:

注意:使用長整型存儲整數時,這個整數不可以超出長整型的范圍,即-263~263-1,否則程序會輸出“過大的整數”這一錯誤信息。
由于整數默認使用整型進行存儲,所以要使用長整型存儲整數時,必須在數字后面加l或L。如果不加,很可能會導致這個值丟失,或提示錯誤信息,如以下代碼:

此時會輸出以下錯誤信息:

對于整型、短整型、字節型及長整型來說,它們都是用來存儲整數的,只是存儲的字節數和范圍不同。需要對比并掌握其所占用的空間和表示的數值范圍,如圖2.19所示。

圖2.19 4種整數類型占用的字節數和范圍
- Data Visualization with D3 4.x Cookbook(Second Edition)
- HTML5移動Web開發技術
- Mastering Adobe Captivate 2017(Fourth Edition)
- 數據庫系統原理及MySQL應用教程
- C#應用程序設計教程
- C#程序設計教程(第3版)
- C/C++數據結構與算法速學速用大辭典
- Mastering AWS Security
- QGIS 2 Cookbook
- 深入實踐DDD:以DSL驅動復雜軟件開發
- Android Studio開發實戰:從零基礎到App上線 (移動開發叢書)
- 青少年學Python(第2冊)
- Arduino Electronics Blueprints
- 算法精解:C語言描述
- Isomorphic Go