Integer陷阱
public static void main(String[] args) {
Integer a = 200;
Integer b = 200;
if (a == b) {
System.out.println("a == b");
} else {
System.out.println("a != b");
}
a = 100;
b = 100;
if (a == b) {
System.out.println("a == b");
} else {
System.out.println("a != b");
}
}
輸出結(jié)果:
a != b
a == b
看源碼得:Integer將[-128,127]的數(shù)值做了緩存的疲扎。要使用直接用,不會創(chuàng)建新的Integer對象椒丧,其他原生類型可能也有類似的問題
可變參數(shù)
可變參數(shù)只能作為最后一個參數(shù)
private static int sumAdd(int... nums) {
int sum = 0;
for (int num : nums) {
sum += num;
}
return sum;
}
public static void main(String[] args) {
System.out.println(sumAdd(1, 2, 3, 4, 5, 6));
}