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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘永贵 中级黑马   /  2014-3-4 17:55  /  1034 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Demo {
        public static void main(String[] args) {
                int[ ]  arr = new int[10] ;
                System.out.printLn(arr[0]);
        }
}

为什么运行时的结果是0

麻烦路过的大师为我解答一下

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

7 个回复

正序浏览
int类型的初始化就是0
回复 使用道具 举报
int[ ]  arr = new int[10] ;
new运算符在堆内存创建一个数组对象,
凡是在堆内存产生的变量都有默认初始化值,int默认是0
回复 使用道具 举报
因为默认初始化值就是0   
回复 使用道具 举报
数组是引用类型,数组分配空间后,每个元素也被被隐士初始化。你定义了int型的数组,因此默认初始化为0

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
创建了数组又没有赋值,虚拟机就给你赋了默认的初值,int型的话默认值就是0了

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
数组是有默认初始化值的 arr[0] 你也没有对其设置其他值,所以它显示的是默认值0

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 kira 于 2014-3-4 17:57 编辑

因为你的第一个数组角标没赋值 只是给了个10长度 所以数组的第一个元素默认就是0 而且代码还写错了

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马