A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 汤姆纳斯 高级黑马   /  2014-6-4 13:40  /  1177 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 汤姆纳斯 于 2014-6-4 14:28 编辑

int[] arr = new int[10];
System.out.println(arr[0]);
这个程序输出结果是什么?是0还是null呢?这两个我分不清楚。

10 个回复

倒序浏览
本帖最后由 f78fk 于 2014-6-4 13:47 编辑

刚才我试了下,是0
回复 使用道具 举报
0,因为int[] arr = new int[10];已经实例化了,如果没有赋值,那么java中会默认为0,所以是0.
回复 使用道具 举报
本帖最后由 杨韬略 于 2014-6-4 14:08 编辑

答:是0!以下为测试例子,对数组角标超出以及未赋值已定义的角标进行实际测试,来帮助你对数组的理解!
public class 多维数组内元素数量差异化 {
/**
  * 第一种情况若直接给数组赋值在下不存在的角标输出会失败的
  * 第二种情况验证假如给数组定义角标,只要输出角标在定义范围内即使没被赋值输出都有默认值且都为0
  */
public static void main(String[] args) {
  //第一种情况
     int[][] a={{4,5},{7,52,69,100},{1}};
    //System.out.println("没被 赋值的元素角标:\n"+a[0][3]);

  
  //第二种情况:
  
  //int[][] a=new int[3][4]{{4,5},{7,52,69,100},{1}};//该定义是不被允许的
  int[][] a=new int[3][4];
//  a[3][4]=4;/该超出定义范围内的赋值也是无效
  a[2][3]=4;
  System.out.println("没被 赋值的元素角标:\n"+a[2][1]+"\n"+a[0][1]);
  System.out.println(a[2][3]);
}
}

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
是0,字符类型的是null
回复 使用道具 举报
我写了一段小代码,方便理解,定义字符串数组时,默认值为null,像int这种类型的数组默认的值是0
public class Try {
    public static void main(String args[])
    {
        int arr[]=new int[10];
        String s[]=new String[10];
        System.out.println("arr[0]="+arr[0]);
        System.out.println("s[0]="+s[0]);
    }
}

回复 使用道具 举报
是0,自己试一下就知道了
回复 使用道具 举报
给数组定义角标,只要输出角标在定义范围内即使没被赋值输出都有默认值且都为0
回复 使用道具 举报
是0,因为  int[] 是数组类型,属于引用类型,一经被创建存在与堆中,
回复 使用道具 举报
夏季熬成了秋 发表于 2014-6-5 03:04
是0,因为  int[] 是数组类型,属于引用类型,一经被创建存在与堆中,

而堆中的int 变量默认 为0;
回复 使用道具 举报
数组的默认初始化值是0
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马