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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王亚飞 中级黑马   /  2012-7-10 13:35  /  2562 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定义一个数组,和初始化一个数组是一个意思么?
int [] arr = new int []{1,2,3,4,5,6};和
int []  arr = {1,2,3,4,5,56,6,7};
这么定义数组有什么区别吗

6 个回复

倒序浏览
定义一个数组是int[] arr;这个时候在栈内存中分配空间。
初始化数组int [] arr = new int []{1,2,3,4,5,6};,这个时候在堆内存中创建一个对象,并且数组的长度及其中的值都是在堆内存中,最后把堆内存中的对象的引用指向栈内存中的 arr。
至于int [] arr = new int []{1,2,3,4,5,6};和
int []  arr = {1,2,3,4,5,56,6,7};这两个都是对的 ,我感觉没什么差别,只是第二种不用写new是由虚拟机自动添加的。这是我的理解。
回复 使用道具 举报
万宝东 发表于 2012-7-10 13:51
定义一个数组是int[] arr;这个时候在栈内存中分配空间。
初始化数组int [] arr = new int []{1,2,3,4,5,6}; ...

定义一个数组:就是在堆内存中开辟了一个空间,这个空间存储的都是同一类型的数据。
初始化一个数组:我们在定义数组时,可以给每个元素进行赋值,这就是初始化一个数组。  而且数组元素在定义时就有一个默认初始化值,值为0
int [] arr = new int []{1,2,3,4,5,6};和
int []  arr = {1,2,3,4,5,56,6,7};
这两个数组定义的内容没有区别,只是第二种定义方式是第一种定义的简写格式。
作用都是定义了一个数组然后给里面的元素进行初始化赋值, 元素值为1,2,3,4,5,56,6,7。

希望对你有帮助

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
万宝东 发表于 2012-7-10 13:51
定义一个数组是int[] arr;这个时候在栈内存中分配空间。
初始化数组int [] arr = new int []{1,2,3,4,5,6}; ...

哦,谢了
回复 使用道具 举报
廖智 发表于 2012-7-10 14:09
定义一个数组:就是在堆内存中开辟了一个空间,这个空间存储的都是同一类型的数据。
初始化一个数组:我 ...

明白了,谢了
回复 使用道具 举报
廖智 发表于 2012-7-10 14:09
定义一个数组:就是在堆内存中开辟了一个空间,这个空间存储的都是同一类型的数据。
初始化一个数组:我 ...

明白了,谢了
回复 使用道具 举报
int [] arr = new int []{1,2,3,4,5,6};和
int []  arr = {1,2,3,4,5,56,6,7};
内容的意思是一样的,但是在使用上还是有一定得区别的
第二种是简化的定义,一般我们在定义的时候就用这个,上面那个朋友说的很清楚了
这样定义是没有太大区别的
第一种写法有些繁琐了点吧,但是也没错,意思是一样的
但是在使用上有一点区别了
int [] arr = new int [];
在我们要用存放元素的时候,这个是定义一个临时的容器来存放数组
为了方便我们自己敲代码,我还是推荐在定义的时候区分一下,会方便一点
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马