第一个问题,我想问一下:
           在孙卫琴的hashCode()这个方法代码里出现29+某个对象的hashCode(),比如:
   public int hashCode()
   {
      return 29+(person.name==null?0:person.hashCode());
   }
加29有什么用啊?我觉得好像没什么用。。第二个问题 
 Date d = new Date();
    long lseed = d.getTime();
 java.util.Random r = new Random(lseed);这个种子有什么用啊?为什么取当前时间。。

解决方案 »

  1.   

    hash码自己订函数规则,加多少是自己设计的。只要符合文档中关于hashCode方法的规约就可以 。
      

  2.   

    public int hashCode() 
      { 
          return 29+(person.name==null?0:person.hashCode()); 
      } 
    这里加29的话返回的hashCode应该是 29 ~ (29 + person.hashCode())之间.估计作者有别的用意吧.是不是最少的值等于29。Date d = new Date(); 
    long lseed = d.getTime(); 
    java.util.Random r = new Random(lseed); 
    这里1楼已经说了. 
    lseed是以当前的时间的毫秒数产生随机数的种子, 估计是想拿一个足够大的值作为种子.这里应该没有别的意思.
      

  3.   

    csdn真是热闹啊,刚刚明明是看到1楼,一回发现已经4楼了 :)
      

  4.   

    这里没有context,我也只是简单假设而已. :) 足够大的确是说的不是很确切