一、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() {}
}
// ......
}