黑马程序员技术交流社区
标题: 数组问题 [打印本页]
作者: 汤姆纳斯 时间: 2014-6-4 13:40
标题: 数组问题
本帖最后由 汤姆纳斯 于 2014-6-4 14:28 编辑
int[] arr = new int[10];
System.out.println(arr[0]);
这个程序输出结果是什么?是0还是null呢?这两个我分不清楚。
作者: f78fk 时间: 2014-6-4 13:45
本帖最后由 f78fk 于 2014-6-4 13:47 编辑
刚才我试了下,是0
作者: 123_yaya 时间: 2014-6-4 13:46
0,因为int[] arr = new int[10];已经实例化了,如果没有赋值,那么java中会默认为0,所以是0.
作者: 杨韬略 时间: 2014-6-4 14:03
本帖最后由 杨韬略 于 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]);
}
}
作者: 宋大人-专注 时间: 2014-6-4 15:52
是0,字符类型的是null
作者: Whero 时间: 2014-6-4 16:51
我写了一段小代码,方便理解,定义字符串数组时,默认值为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]);
}
}
作者: tangchuanping 时间: 2014-6-4 17:11
是0,自己试一下就知道了
作者: jiang_ming 时间: 2014-6-4 17:24
给数组定义角标,只要输出角标在定义范围内即使没被赋值输出都有默认值且都为0
作者: 夏季熬成了秋 时间: 2014-6-5 03:04
是0,因为 int[] 是数组类型,属于引用类型,一经被创建存在与堆中,
作者: 夏季熬成了秋 时间: 2014-6-5 03:06
而堆中的int 变量默认 为0;
作者: 姿_`态 时间: 2014-6-5 08:29
数组的默认初始化值是0
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |