黑马程序员技术交流社区

标题: 数组初始化错误的问题 [打印本页]

作者: justinhsj    时间: 2016-1-28 17:38
标题: 数组初始化错误的问题
为什么不能这样定义数组?
  1. public class Text2 {
  2.         public static void main(String[] args) {
  3.                 int[] arr = new int[5];
  4.                                    arr =  {1,2,3,4,5};
  5.         }

  6. }
复制代码

作者: 西贝    时间: 2016-1-28 17:52
  1. public class Text2 {
  2.         public static void main(String[] args) {
  3.                 int[] arr = new int[5];
  4.                                    arr =  {1,2,3,4,5};
  5.         }
  6. }
复制代码

1、int [] arr = new int [5];
这是数组的动态初始化
2、int[] arr ={1,2,3,4,5}
这是数组的静态初始化
猜测楼主想表达的应该是这样吧:
  1.   int[] arr ;
  2.   arr =new int[]{1,2,3,4,5};
复制代码

作者: Qiubang    时间: 2016-1-28 17:54
这样肯定是不可以的,arr是一个地址呢
作者: justinhsj    时间: 2016-1-28 18:01
Qiubang 发表于 2016-1-28 17:54
这样肯定是不可以的,arr是一个地址呢

嗯,好像确实是这样
作者: justinhsj    时间: 2016-1-28 18:03
西贝 发表于 2016-1-28 17:52
1、int [] arr = new int [5];
这是数组的动态初始化
2、int[] arr ={1,2,3,4,5}

嗯,是应该这样表达。
作者: yi651312197    时间: 2016-1-28 19:14
确实是的
作者: 酱油    时间: 2016-1-28 23:21
arr此时已经是指向数组的一个引用了,肯定不能这样再赋值
作者: 梁志斌    时间: 2016-1-30 03:13
66666666666,详解啊
作者: zapoo    时间: 2016-1-31 15:28
动态初始化
int[] arr = new int[5];
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;
arr[3] = 3;
arr[4] = 4;
动态初始化时先开辟空间,然后一一赋值,不给显示的赋值,就默认是数据类型的默认值!
静态初始化
int[] arr = {0, 1, 2, 3, 4};
静态初始化时给开辟空间立马就赋值,当然你可以先不给定值,之后一个一个赋值也可以
作者: 858009904    时间: 2016-1-31 23:02
静态初始化和动态初始化混淆了!
如果按照动态初始化,那第二行就不要初始化了,第一行已经按动态初始化执行了!
如果按照静态初始化:可以分成两行写,那么第一行,不能指定数组的长度;
                                     写成一行。见如下:
动态初始化:int[] arr = new int[5];
静态初始化:第一种方法:int[] arr = new int[]; arr = {1,2,3,4,5};
                  第二种方法:int[] arr = {1,2,3,4,5};
再也没有其他的写法了!
希望能帮到你!我也复习了一遍!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2