javaSE - 009 - Integer陷阱和可变参数

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));
 }

你可能感兴趣的:(javaSE - 009 - Integer陷阱和可变参数)