final修饰的变量是不能够被改变的,但是当生成随机数的时候,我们可以这样写, final Random random = new Random();
这个random变量如果不改变,怎么会产生随机数?

解决方案 »

  1.   

    final是指random这个引用不变 (注意,不变的只是引用,但是random的属性值是可以变的)
    final Random random = new Random(); // OK
    random = new Random(); // Error,再次赋值一个引用时,因为random这个引用是不变的,所以出错
      

  2.   

    随机数是由random变量产生的,一个random变量就可以搞定了。不是说 产生一个随机数就要new一个random收工
      

  3.   

    final String str = new String(); 表示当前对象的引用地址是不可以被改变的,但对象的属性是可以改变的。所谓的地址改变就是不能再使用 这样的语句 str=new String(),不能再出现这样的new 关键字了。
      

  4.   

    final是指random这个引用不变 (注意,不变的只是引用,但是random的属性值是可以变的)
      表示当前对象的引用地址是不可以被改变的,但对象的属性是可以改变的。所谓的地址改变就是不能再使用 这样的语句 str=new String(),不能再出现这样的new 关键字了。还有就是说
    随机数是由random变量产生的,一个random变量就可以搞定了。不是说 产生一个随机数就要new一个random
      

  5.   

    final表示final修饰的引用不可变,但引用本身的属性是可变的。在此random对象不可变,但random对象产生随机数内部其实是random对象的函数作用得到的。
      

  6.   

    final表示自己修饰的变量不可改变,这根Random关系不大。
    final Random random = new Random();产生了一个随机数,并且这个随机数的值在后面不能改变。
    如果还想产生一个随机数必须再定义一个。