黑马程序员技术交流社区

标题: 新人求教 [打印本页]

作者: 叶燕希    时间: 2015-5-23 14:38
标题: 新人求教
package ye;

public class Ye_4 {
   public static void main(String args[]){
       int[] arr={2,9,5,3};
       maopao(arr);
              System.out.print(arr);
   }
   public static void maopao(int[] arr){
       for (int x=0;x<arr.length-1;x++){
           for(int y=0;y<arr.length-x-1;y++){
               //-x 让没一次比较次数减少。-1为了避免角标越界
               if(arr[y]<arr[y+1]){
                   int temp=arr[y+1];
                   arr[y+1]=arr[y];
                   arr[y]=temp;
               }
           }
       }
     
   }
}

为什么输出是乱码的 [I@de6ced  程序也没提示错误啊



作者: wangkai    时间: 2015-5-23 16:34
你打印的内存地址值,打印数组应该遍历输出,一盘定义一个函数,调用即可。
public static void printArray(int[] arr)
{
  System.out.print("[");
  for(int x= 0; x<arr.length; x++)
  {
   if(x!=arr.length-1)
    System.out.print(arr[x]+", ");
   else
    System.out.println(arr[x]+"]");
  }
}

作者: 叶燕希    时间: 2015-5-23 17:15
wangkai 发表于 2015-5-23 16:34
你打印的内存地址值,打印数组应该遍历输出,一盘定义一个函数,调用即可。
public static void printArray ...

那为什么那个会乱码的呢?输出数组一定要遍历吗
作者: 时光匆匆    时间: 2015-5-23 17:41
你直接打印数组当然是地址值,可以在弄一个遍历的方法就可以了,当然也可以直接打印arr[索引]
作者: 1017161726    时间: 2015-5-23 18:08
这格式内存地址,不是乱码。数组是引用型变量




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2