微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java中奇怪的数组行为

这是一个简单的数组声明和初始化.

int arr[] = new int[10];

    for(int i = 0; i<arr.length; i++){

    arr[i] = i;
    }

这个

System.out.println(arr[000001]);

System.out.println(arr[000007]);

打印出正确的值,但任何高于8的值

System.out.println(arr[000008]);

生成java.lang.RuntimeException:无法编译的源代码

为什么会这样?

解决方法

这与数组无关;以数字0开头的整数是八进制(基数为8).合法的八进制数字是0-7,因此08(或00000008)是无效的八进制整数文字. 8的正确八进制是010.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐