1. 程式人生 > >Integer比較的各種問題

Integer比較的各種問題

1、包裝類Integer跟基本型別int的比較

上面兩種型別比較的時候是直接取出包裝類事例所包裝的數值進行比較。

Integer it1 = 2;
Integer it3 = new Integer(2);
int i1 = 2;
System.out.println(it1 == i1);//true
System.out.println(it3 == i1)//true

輸出結果為true。

2、如果是兩個包裝類進行比較會有以下幾種情況

(1)包裝類的例項實際上是引用型別,只有兩個包裝類引用指向同一個物件時才會返回true

Integer it1 = new Integer(2);
Integer it2 = new Integer(2);
System.out.println(it1 == it2);//false

上面的程式碼返回false,這是因為每次新建一個物件,都會在堆記憶體內開闢一個新的記憶體區域,他們的記憶體地址不同,所以兩個物件引用所儲存的記憶體地址不同,他們指向的物件不同,自然返回false;

(2)通過自動裝箱把兩個基本型別值賦給一個包裝類例項,會出現一些特別的情形

相關推薦

Integer比較各種問題

1、包裝類Integer跟基本型別int的比較上面兩種型別比較的時候是直接取出包裝類事例所包裝的數值進行比較。Integer it1 = 2; Integer it3 = new Integer(2); int i1 = 2; System.out.println(it1 =

JAVA中Long與Integer比較容易犯的錯誤

今天使用findbugs掃描專案後發現很多高危漏洞,其中非常常見的一個是比較兩個Long或Integer時直接使用的==來比較。 其實這樣是錯誤的。 因為Long與Ineger都是包裝型別,是物件。  而不是普通型別long與int , 所以它們在比較時必須都應該用equ

Long的equals和相同數值的Integer比較為何為false?

看程式碼: @Test public void demo2(){ Integer integer100 = 100; int int100 = 100; Long long200 = 200l

關於Integer比較問題

1 public class Test { 2 public static void main(String[] args) { 3 Integer a=127; 4 Integer b=127; 5 System.out.println

Integer比較時最好不要用==

上述程式碼的答案,涉及到Java緩衝區和堆的問題。 java中Integer型別對於-128-127之間的數是緩衝區取的,所以用等號比較是一致的。但對於不在這區間的數字是在堆中new出來的。所以地址空間不一樣,也就不相等。 Integer b3=60,這是一個裝箱過程也就是Integer b3=In

關於int和Integer比較的問題

在看到好幾道有關這個int和Integer的值比較的問題,於是搗騰了一番,也釋了疑惑。 1. Integer a = new Integer(12); Integer b = new Integer(12); System.out.println(a == b)

關於int Integer比較的問題

1. 今天有朋友問了我一個關於int  Integer比較的面試題Integer a=new Integer(3); Integer b=3; // java在編譯的時候,被翻譯成-> Integer b = Integer.va

Java Integer比較中的那些坑

前幾天同事偶然遇到的一個問題,在list中查詢出重複的值,留下第一個,其餘刪除。 ArrayList<Integer> a//a中裝有要操作的資料,都是數字 for(int i;i<a.size();i++){ //....遍歷

關於Integer比較相等的問題

作為一個菜雞,記下來免得忘了。1.通過new出來的兩個Integer物件比較時,==是比較的物件地址,等同於一般物件比較的==,equals則會比較其內部的int值是否相等。因為內部重寫了equals方法:public boolean equals(Object obj) {

JAVA中Long與Integer 比較的誤區

今天使用findbugs掃描專案後發現很多高危漏洞,其中非常常見的一個是比較兩個Long或Integer時直接使用的==來比較。 其實這樣是錯誤的。 因為Long與Ineger都是包裝型別,是物件。  而不是普通型別long與int , 所以它們在比較時必須都應該用eq

Integer比較大小問題

看深入理解java虛擬機器時候發現下面的程式碼比較: public class TestClass { public static void main(String[] args) { Integer a = 1;

Integer比較是否相等問題

有兩大種情況 1. Integer 與 Integer 進行比較 2. Integer 與 int 進行比較 第一種:Integer 與 int進行比較 Integer 與int進行比較,會自動比較  兩個的值是否相等,如同 int與int這種基本型別的比較一樣。 第二種:

Integer比較值大小==,大於等於128的返回false

code: Integer a1 = 127; Integer b1 = 127; if(a1==b1){ System.out.println("相等"); }else{ System.out.println("不等"); } Inte

各種排序算法的比較

sse sts mes log imp n) rtt clock random 1.main.cpp 主函數 #include <iostream> #include<algorithm> #include <string> #incl

Java中Integer和int比較大小出現的錯誤

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

無法刪除 NTFS 盤上的文件或文件夾(對Windows文件的各種情況有比較詳細的描述)

將在 binding 新的 資源管理器 操作權限 損壞 windows 導致 port 簡介 本文介紹您可能無法刪除 NTFS 文件系統卷上的文件或文件夾的原因,以及如何分析造成此問題的不同原因從而解決此問題。

[轉] 各種Json解析工具比較 - json-lib/Jackson/Gson/FastJson

config 1.2 content pretty 接口實現 turn sso processor true JSON技術的調研報告一 、各個JSON技術的簡介和優劣1.json-libjson-lib最開始的也是應用最廣泛的json解析工具,json-lib 不好的地方確

C++11中對容器的各種循環遍歷的效率比較

ets normal pre unsigned int qdebug tex contain string 1 #include "CycleTimeTst.h" 2 #include <string> 3 #include <vector&

Integer 數值比較

str ont eof integer ring align 空間 ace bug //Integer 源碼 private static class IntegerCache { static final int low = -128;

Java Integer類型比較

parseint save 查看 system for max brush ets form 今天做了一道題目題目如下: Integer a=10; Integer b=10; System.out.print(a==b); Integer c=200; In