Integer比較大小的正確方法


一、Integer的大小比較

package com.tsing0520;

import org.junit.Test;

public class IntegerTest {

    @Test
    public void testEquals1(){
        Integer num1 = 10 ;
        Integer num2 = 10 ;
        boolean flag = num1 == num2;
        // true
        System.out.println(flag);
    }

    @Test
    public void testEquals2(){
        Integer num1 = 1000 ;
        Integer num2 = 1000 ;
        boolean flag = num1 == num2;
        // false
        System.out.println(flag);
    }

    @Test
    public void testEquals3(){
        Integer num1 = 10 ;
        Integer num2 = 10 ;
        boolean flag = num1.equals(num2);
        // true
        System.out.println(flag);
    }

    @Test
    public void testEquals4(){
        Integer num1 = 1000 ;
        Integer num2 = 1000 ;
        boolean flag = num1.equals(num2);
        // false
        System.out.println(flag);
    }
}

二、Integer的部分源碼

package java.lang;

public final class Integer extends Number implements Comparable<Integer> {    
    public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }
    
    private static class IntegerCache {
        static final int low = -128;
        static final int high;
        static final Integer cache[];
        static {
            // high value may be configured by property
            int h = 127;
            // ......
        }
        private IntegerCache() {}
    }
    // ......
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM