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");
}
}
输出结果:
a != b
a == b
看源码得:Integer将[-128,127]的数值做了缓存的。要使用直接用,不会创建新的Integer对象,其他原生类型可能也有类似的问题
可变参数
可变参数只能作为最后一个参数
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));
}
网友评论