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