泛型中不能利用根本类型,只能利用包装类型,null执行主动拆箱操纵会抛NullPointerException非常,由于主动拆箱是通过调用包装对象的intValue方法来实现的,而访问null的intValue方法会报空指针非常。服膺一点:包装类参与运算时,要做null值校验,即(i!=null ? i : 0)
public static Integer valueOf(int i) { final int offset = 128; if (i >= -128 && i <=127) { return IntegerCache.cache[i + offset]; } return new Integer(i); }class IntegerCache { static final Integer cache[] = new Integer[-(-128) + 127 + 1]; static { for (int i = 0; i < cache.length; i++) cache[i] = new Integer(i - 128); }}
若非必要,不要设置随机数种子)(Random r = new Random(1000);该代码中1000即为随机种子。在同一台机器上,不管运行多少次,所打印的随机数都是雷同的。在Java中,随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:1、种子不同,产生不同的随机数;2、种子雷同,即使实例不同也产生雷同的随机数。Random类默认种子(无参构造)是System.nanoTime()的返回值,这个值是隔断某一个固定时间点的纳秒数,以是可以产生随机数。java.util.Random类与Math.random方法原理雷同