1. 程式人生 > >int和Integer有什麼區別?談談Integer的值快取範圍

int和Integer有什麼區別?談談Integer的值快取範圍

int時我們常說的整形數字,是Java的8中原始資料型別之一.Java語言雖然號稱一切都是物件,但原始資料型別除外.

Integer是int對應的包裝類,他又一個int型別的欄位儲存資料,並且提供了基本操作,比如數學運算,int和字串之間轉換等.在JAVA5中,引入了自動裝箱和自動拆箱功能,Java可以根據上下文,自動進行轉換,極大的簡化了相關程式設計.

關於Integer的值快取,者涉及到Java5中另一個改進.構建Integer物件的傳統方式是直接呼叫構造器,直接new一個物件.但是根據實踐,我們發現大部分資料操作都是集中在優先的,較小的數值範圍,因而,在Java中新增了靜態工廠方法valueOf,在呼叫它的時候會利用一個快取機制,帶來了明顯的效能改進,按照Javadoc,這個值預設快取是-128到127之間