-
1
public class Test { public static void main(String[] args) { Integer[] a1 = new Integer[3]; a1[0]= new Integer(1); a1[1]= new Integer(1); a1[2]= new Integer(1); int[] a2 = new int[3]; a2[0] = 1; a2[1] = 2; a2[2] = 3; System.out.println("++++++++++++++++++++++++++++++++++++++++++++="); System.out.println(Arrays.asList(a1).size());//3 System.out.println(Arrays.asList(a2).size());//1 } }
为什么输出结果为3和1
因为泛型不支持基础数据类型,int数组当成了一个List<int[]>中的一个元素
-
2
public static void main(String[] args) { short a =1; a=a+1; a+=1; }
第一种写法是错误的,在编译器里就提示,需要short类型,但是发现是一个int类型,a+1操作的时候默认向上转型了,转成了int,但是再赋值给a的时候需要向下转型为short,向下转型编译器不会默认的给你转,需要你手动转,比如a=short(a+1);这也能编译通过。像a+=1应该是编译器做了特殊处理。
-
3描述一下ZooKeeper的leader选举过程
参考《从paxos到zookeeper分布式一致性原理》一书的7.6节内容。