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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© justinhsj 中级黑马   /  2016-1-28 17:38  /  1141 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么不能这样定义数组?
  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. }
复制代码

9 个回复

倒序浏览
  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};
复制代码

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
这样肯定是不可以的,arr是一个地址呢
回复 使用道具 举报
Qiubang 发表于 2016-1-28 17:54
这样肯定是不可以的,arr是一个地址呢

嗯,好像确实是这样
回复 使用道具 举报
西贝 发表于 2016-1-28 17:52
1、int [] arr = new int [5];
这是数组的动态初始化
2、int[] arr ={1,2,3,4,5}

嗯,是应该这样表达。
回复 使用道具 举报
确实是的
回复 使用道具 举报
酱油 来自手机 高级黑马 2016-1-28 23:21:22
7#
arr此时已经是指向数组的一个引用了,肯定不能这样再赋值
回复 使用道具 举报
66666666666,详解啊
回复 使用道具 举报
zapoo 中级黑马 2016-1-31 15:28:25
9#
动态初始化
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};
静态初始化时给开辟空间立马就赋值,当然你可以先不给定值,之后一个一个赋值也可以
回复 使用道具 举报
静态初始化和动态初始化混淆了!
如果按照动态初始化,那第二行就不要初始化了,第一行已经按动态初始化执行了!
如果按照静态初始化:可以分成两行写,那么第一行,不能指定数组的长度;
                                     写成一行。见如下:
动态初始化:int[] arr = new int[5];
静态初始化:第一种方法:int[] arr = new int[]; arr = {1,2,3,4,5};
                  第二种方法:int[] arr = {1,2,3,4,5};
再也没有其他的写法了!
希望能帮到你!我也复习了一遍!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马