{
static int[] values = new int[10]; static 
{
System.out.println("Running initialization block...");
for(int i = 0; i < values.length; i++)
{
values[i] = (int)(100.0*Math.random());
}
} static void listValues()
{
System.out.println();
for(int value : values)
{
System.out.print(" " + values);
}
System.out.println();
} public static void main(String[] args)
{
System.out.println("\nFirst object:");
TryInitialization.listValues();
System.out.println("\nSecond object:");
TryInitialization.listValues();
}}疑问:
1、为什么运行结果,没有生成随机数,而显示如下:[cashlu@cashlu-desktop Desktop] $ java TryInitialization 
Running initialization block...First object: [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821fSecond object: [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f [I@19821f
2、for(int value : values)这个语句是什么意思?

解决方案 »

  1.   

    System.out.print(" " + values);
    写错了。
    应该是value。
      

  2.   

    谢谢,还有一个疑问
    在下面这句代码中:
    for(int value : values)value和values用冒号隔开是什么意思?
      

  3.   

    for(int value : values)JDK 1.5 后增加的新特性,for ... in 循环(也称增强的循环),后面的参数是指一个数组或一个集合,而前面的参数是后面参数中所存放的众多元素的类型,这个变量也可以近似地看作是这个数组中的一个元素,例如:int[5] nums = new int[]{1,2,3,4,5};
    for(int n : nums) {
      System.out.println(n);
    }就会遍历输出这个数组,与for(int i = 0; i < nums.length; i++){
      System.out.println(nums[i]);
    }的效果是一样的。
      

  4.   

    for(int value : values) {
    ...
    }就是取values里面每一个值到value 和
    for (int i=0; i<values.length; i++) {
        ....
    }
    效果一样