java关于数组初始化问题
比如对数组初始化int[]a=newint[8];和int[]a=new{1,2,3,4,5,6,7,8,};上面有什么不同吗?书上说的数组创建和初始化好像是一样东西啊。...
比如对数组初始化
int[] a=new int[8];和int[] a=new {1,2,3,4,5,6,7,8,};
上面有什么不同吗?
书上说的数组创建和初始化好像是一样东西啊。。看的头都晕了,有大哥大姐解释下吗? 展开
int[] a=new int[8];和int[] a=new {1,2,3,4,5,6,7,8,};
上面有什么不同吗?
书上说的数组创建和初始化好像是一样东西啊。。看的头都晕了,有大哥大姐解释下吗? 展开
7个回答
展开全部
想知道区别,这很简单,你做一个循环,输出一下就知道了。
#######int[] a=new {1,2,3,4,5,6,7,8,};这个语法正确么?由此可见你动手能力太差,根本不自己去尝试的练习。
public class Test{
public static void main(String[] args) {
int[] a=new int[8];
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}//输出:00000000
System.out.println();
String[] a1=new String[8];
for (int i = 0; i < a1.length; i++) {
System.out.print(a[i]);
}//输出:nullnullnullnullnullnullnullnull
System.out.println();
int[] b={1,2,3,4,5,6,7,8};
for (int i = 0; i < b.length; i++) {
System.out.print(b[i]);
}//输出:12345678
}
}
××以上代码可以直接拷过去测试。
**注:由于基本类型在定义时,系统是会给赋默认值的,所以数组a可以输出值。如果是引用类型,则全为null。在定义数组b的同时给他初始化,一组数用{ }包围表示数组,这个定义过程是这样的:先创建了一个数组,数组内容是大括号里的内容,然后吧这个数组赋给了b。
解释两个概念:引用类型和基本类型。简单说基本类型有八个(boolean,byte,char,short,int,long,float,double),其余的都是引用类型。
#######int[] a=new {1,2,3,4,5,6,7,8,};这个语法正确么?由此可见你动手能力太差,根本不自己去尝试的练习。
public class Test{
public static void main(String[] args) {
int[] a=new int[8];
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}//输出:00000000
System.out.println();
String[] a1=new String[8];
for (int i = 0; i < a1.length; i++) {
System.out.print(a[i]);
}//输出:nullnullnullnullnullnullnullnull
System.out.println();
int[] b={1,2,3,4,5,6,7,8};
for (int i = 0; i < b.length; i++) {
System.out.print(b[i]);
}//输出:12345678
}
}
××以上代码可以直接拷过去测试。
**注:由于基本类型在定义时,系统是会给赋默认值的,所以数组a可以输出值。如果是引用类型,则全为null。在定义数组b的同时给他初始化,一组数用{ }包围表示数组,这个定义过程是这样的:先创建了一个数组,数组内容是大括号里的内容,然后吧这个数组赋给了b。
解释两个概念:引用类型和基本类型。简单说基本类型有八个(boolean,byte,char,short,int,long,float,double),其余的都是引用类型。
展开全部
两个只是表现形式不一样。
第一个是只初始化了数组长度为8
第二个是初始化数组长度,并针对每个元素进行初始化
例如:
int 类型默认值为0
第一个数组 a[0]=0,a[1]=0 .... a[7]=0
第二个数组 a[0]=1,a[1]=2 .... a[7]=8
你可以循环这两个数组输出出来,看见效果就明白了。
第一个是只初始化了数组长度为8
第二个是初始化数组长度,并针对每个元素进行初始化
例如:
int 类型默认值为0
第一个数组 a[0]=0,a[1]=0 .... a[7]=0
第二个数组 a[0]=1,a[1]=2 .... a[7]=8
你可以循环这两个数组输出出来,看见效果就明白了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前一个是数组的初始化,此时为数组的元素分配相应的存储空间,如果数组元素是int类型,其默认初始化的值是0。
后一个也是数组的初始化并赋值,此时没有采用默认的初始化赋值,而是指定了每个元素的值。
如果要仅仅创建数组应该是 int [] array= null; 这样就创建了一个数组,此时并没有为数组分配存储空间,所以不能访问其数组元素。
后一个也是数组的初始化并赋值,此时没有采用默认的初始化赋值,而是指定了每个元素的值。
如果要仅仅创建数组应该是 int [] array= null; 这样就创建了一个数组,此时并没有为数组分配存储空间,所以不能访问其数组元素。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int[] a=new int[]{1,2,,3,4,5,6,7,8}是直接给数组赋值了。
int[] a=new int[8]是初始化数组,如果不给它赋值,数组中的值默认为0。
int[] a=new int[8]是初始化数组,如果不给它赋值,数组中的值默认为0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组的创建只是申请了一个地址空间。初始化就是把内存分配过来了,并且内存里面有数据
追问
int[] a=new int[8];和int[] a=new {1,2,3,4,5,6,7,8,};
是数组创建还是初始化啊?
int[] a=new int[8];只能表示创建的数组a长度是8啊
追答
int [] a;这样的形式是变量申明但没有申请空间
int[] a=new int[8]是申明了变量并且申请了空间
int [] a = new {1,2,3,4,5,6,7,8,};是初始化,即申明变量,申请空间,并给申请到的内存空间赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询