1. 程式人生 > >Java中Integer直接比較大小

Java中Integer直接比較大小

Integer a = -1250;

Integer b = -1250;

System.out.println(a == b);

Integer c = -125;

Integer d = -125;

System.out.println(c == d);

上面兩段程式碼輸出結果為:false  true

原因:Integer在比較value大小時,Integer物件有個快取,如果value值在-128到127之間時,直接返回固定的物件引用,是同一個,肯定是true。但是超過這個範圍,就是兩個物件了,自然是false。

結論:這種寫法存在問題。Long型別也是如此。其他的型別有興趣可以看看,這裡寫的目的就是為了表明當類似Integer,Long等進行比較時,可採用equals方法。

相關推薦

JavaInteger直接比較大小

Integer a = -1250; Integer b = -1250; System.out.println(a == b); Integer c = -125; Integer d = -125

java時間如何比較大小

java中時間如何比較大小:         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");    //設定日期格式     &nbs

Javadouble型別比較大小或相等的方法

在Java中int型別資料的大小比較可以使用雙等號,double型別則不能使用雙等號來比較大小,如果使用的話得到的結果將永遠是不相等,即使兩者的精度是相同的也不可以。下面介紹兩種比較double資料是否相等的方法。 第一種方法:轉換成字串 如果要比較的兩個double資料的

javaInteger數值比較

java中的Interger數值比較 首先,分別出“==”和“equal”的差別:“==”是對應的地址相等和內容相等,“equal”是對應的內容想等; 然後,Integer物件在進行計算比較是會進行自動拆箱,也就是說Integer a = 10; int b = 10; 判

javaLong型別比較大小和long型別的比較大小

今天遇到這樣一個問題,我用 "=="來比較兩個Long型別的資料,明明數值都相等,可是結果就是false 兩個 Long 型別

JavaInteger和int比較大小出現的錯誤

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

JavaInteger型別的整數值的大小比較

       如果比較兩個數值相等的Integer型別的整數,我們可能會發現,用“==”比較(首先你必須明確“==”比較的是地址),有的時候返回true,而有的時候,返回false。比如: Integer i = 128; Integer j = 128; System

Java Long的值大小比較

java.util.Lang 物件吧,而不是基本型別 long (注意大小寫) Java中如果使用 == 雙等於比較物件,等於比較的是兩個物件的記憶體地址,也就是比較兩個物件是否是同一個物件 如果比

java三個數值大小比較

在我們初學者學習過程中,都會有遇到要求編寫三個數值大小比較的程式碼 今天,在這裡我分享兩種方法去編寫這個問題。 1、if語句 if(a>b){if(a>c){System.out.println("三個數中的最大值為"+a);}else{System.out.p

mysql的date型別直接比較大小是按照字串比較還是時間戳

mysql中的時間比如date型別的欄位如果比較大小的話是按照字串比較還是按照時間戳比較呢? Mysql在比較兩種不同資料型別時,第一步是將他們轉化為同一種類型,然後在比較。那麼Date和String在比較的時候,一定是把String轉化為Date嗎?答案是Yes.ht

javaInteger與int比較淺談

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

Java包裝型別的大小比較

開發十年,就只剩下這套架構體系了! >>>   

javaInteger轉Float總結

style tostring span eof del 類型 () big color 一.先將Integer轉化成int類型,在強制轉float類型 例:Integer str = new Integer(20); int i = str.intValue();

Java常見的比較器的實現方法

ati 算法 equals equal util get stat 不想 sort 在Java中經常會涉及到對象數組的排序問題,那麽就涉及到對象之間的比較問題。通常對象之間的比較可以從兩個方面去看:第一個方面:對象的地址是否一樣,也就是是否引用自同一個對象。這種方式可以直接

JavaInteger和ThreadLocal

PV als 基於 本質 log lang static 返回 類構造 一. Integer 1.引子 在開始之前,我還是需要吐槽下自己,我是真的很菜! 他問:**兩個Integer對象==比較是否相等? 我答:對象==比較,是引用比較,不相等! 他問:Integer

JavaString直接賦字符串和new String的區別 如String str=new String("a")和String str = "a"有什麽區別?

this his The tin ase name ++ 常量池 TE 百度的面試官問 String A="ABC"; String B=new String("ABC"); 這兩個值,A,B 是否相等,如果都往HashSet裏面放,能放下嗎? 答:A==B 不等,

Java字串直接賦值和new一個物件,得到的地址值是什麼樣子的

  public class StringDemo2 { public static void main(String[] args) { String s1 = "hello"; String s2 = new String("hello"); String s3 = "hello"

javaInteger和int的區別(轉)

prev 指針 引用 .com 地址 區別 val details sdn int和Integer的區別 1、Integer是int的包裝類,int則是java的一種基本數據類型 2、Integer變量必須實例化後才能使用,而int變量不需要 3、Integer實際是對象

JAVAInteger的快取機制

Integer的快取機制: Integer是對小資料(-128~127)是有快取的,再jvm初始化的時候,資料-128~127之間的數字便被快取到了本地記憶體中,如果初始化-128~127之間的數字,會直接從記憶體中取出,不需要新建一個物件. public static v

java兩字串比較--compareTo方法

java.lang.String.compareTo()方法比較兩個字串的字典,比較是基於字串中的每個字元的Unicode值 String n1 = "1"; String n2 = "0.15656655856565"; String m1 = "a"; String m2 = "b"; Strin