1. 程式人生 > >Integer與int的比較

Integer與int的比較

最近發現了一個情況;如下:
	public static void main(String[] args) {
		Integer a=333;   
		Integer b=333; 
		int c=333;
		
		System.out.println(a==b);
		System.out.println(a==c);
		System.out.println(a.equals(b));
		System.out.println(a.equals(c));
	}


輸出的結果:

false
true
true
true

但是在a、b、c都等於3的時候

	public static void main(String[] args) {
		Integer a=3;   
		Integer b=3; 
		int c=3;
		
		System.out.println(a==b);
		System.out.println(a==c);
		System.out.println(a.equals(b));
		System.out.println(a.equals(c));
	}

輸出的結果:

true
true
true
true

同樣的方法只是數字不同而已結果卻有差異,檢視資料發現時這樣:

 public static Integer valueOf(int i) {
         assert IntegerCache.high >= 127;
         if (i >= IntegerCache.low && i <= IntegerCache.high)
             return IntegerCache.cache[i + (-IntegerCache.low)];
         return new Integer(i);
     }

原來在[-128,127]之間的資料,用的是快取資料。

看到一個解釋較為詳細的了,不再多說了

相關推薦

java中Integerint比較淺談

今天看到一個面試題 測試程式碼如下 public class test { @Test public void test(){ Integer a = 300 ; Integer b = 300; int c = 300; System.out.println(a == b); System.out.pri

Integerint比較

最近發現了一個情況;如下: public static void main(String[] args) { Integer a=333; Integer b=333; int c=333; System.out.println(a==b);

Integer int 賦值比較

測試程式碼: @Test public void IntegerTest() { Integer i01 = 59; int i02 = 59; Integer i03 = Integer.valueOf(5

Java進階 三十四 Integerint的種種比較你知道多少

包裝 之間 www. tex -128 function detail content aqi Java進階(三十四)Integer與int的種種比較你知道多少? 前言 如果面試官問Integer與int的區別:估計大多數人只會說到兩點:Inge

Java中Integerint比較大小出現的錯誤

最好 裏的 pan 轉換 als 範圍 urn 返回 錯誤 Java在某一處維護著一個常量池,(我記得)在小於128的範圍內,直接用 1 Integer i = 100; 2 int j = 100; 3 return i == j;//true 這裏返回的是true.

Java Integer int 深刻理解

true ger style blog 問題: pan left www. out   今天在做Object 自動轉為Integer 類型之後的判斷,遇到一個不理解的點,當數值超過127之後,兩個數值相同的Object 對象用 == 判斷的結果是false。

Integerint和String物件字串之間的"=="和equals情況

一、Integer與int ①程式碼 @Test public void testInteger() { int i = 129; int j = 129; Integer m = 128; Integer n

資料型別之Integerint

資料型別之Integer與int Java入門  基本資料型別 眾所周知,Java是面向物件的語言,一切皆物件。但是為了相容人類根深蒂固的資料處理習慣,加快常規資料的處理速度,提供了9種基本資料型別,他們都不

Integer Int 的區別

Integer 類整形 與  Int 整形 的區別   最近在翻java的原始碼,發現了一些平常不注意,但很容易出錯的東西,最近有空的話就整理出來。   Integer:是一個int的包裝類,Integer變數的儲存需要例項化Integer的例項物件,

Integerint的區別?

1、Integer 是 int 提供的封裝類,從 Java 5開始引入了自動裝箱/拆箱機制,使得二者可以相互轉化,而 int 是 Java 的基本資料型別; 2、Integer 預設值是 null ,而 int 預設值是0; 3、Integer 是物件,用一個引用指向這個物件,而 int

map獲取數字int比較

parseint map eof bject 使用 轉換 exceptio als decimal 已知   map.get("id")為數字,如:123問題   id.equals(123)    結果為false而使用   int id = (Integer)m

Integerint的區別

徹底讓你明白 Integer 類和 int 基本資料型別的區別 2018年02月01日 16:46:33 鄭州尚學堂李老師 閱讀數:1866 標籤: Integer 類 int 基本資料型別  淺談 Integer 類 目錄 1、Integer 類簡介 2、

關於Integerint拆箱裝箱的總結

    最近在編碼過程中,程式碼提交之後sonar報了Bug警告,引發了對java中Integer類的一些思考。程式碼如下: public boolean verifyDimensions() { if (CollectionUtils.isEmpty(dimension

java基礎鞏固系列(二):Integerint之間的區別

在JDK1.5之後引入了自動裝箱(autoboxing)與自動拆箱(unboxing),這讓很多對java的初學者感到很疑惑,我剛才也是其中一員。 首先,有一些基本的概念需要了解: 1、Ingeter是int的包裝類,int的初值為0,Ingeter的初值為null。 2

Integer、new Integer() 和 int 比較的面試題

data 不解釋 .com 面試 常量 oid com assert itl 基本概念的區分: 1、Integer 是 int 的包裝類,int 則是 java 的一種基本數據類型2、Integer 變量必須實例化後才能使用,而int變量不需要3、Integer 實際是對

Java中long(Long)intInteger)之間的轉換(轉)

轉化 string long tar str 基礎數據類型 ava detail 參考 一、將long型轉化為int型,這裏的long型是基礎類型: long a = 10; int b = (int)a; 二、將Long型轉換為int型,這裏

long(Long)intInteger)之間的轉換

一.將long型轉化為int型,這裡的long型是基礎型別: long   a = 10;     int b = (int)a;    二.將Long型轉換為int 型的,這裡的Long型是包裝型別: Long a = 10; int

Java IntegerInt 進行==雙等於的記憶體比較時的一些問題說明

轉自: https://blog.csdn.net/xingkongdeasi/article/details/79618421 部分有所修改:   前言:     越是簡單的東西,我們往往越是沒有去把它明白,但我們大部分時間又常常在用,就像我們今天說的int與Inte

Integerint比較大小

1.Int和Integer比較大小 public static void main(String[] args) {         int i = 10;         Integer i1 = ne

Integer關於equals==的比較

java中有兩種資料型別:基本型別和引用型別。 基本型別有8個: 整數型別 byte、short、int、long 浮點數型別 float、double 字元型 char 布林型別 boolean 引用型別包括三種: 類 Class 介面 Interface