java基础 数组的声明问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:01:50
1. 为什么声明 int[] arr = null; 不能通过编译?

2. Image[] images = {xxx, xxx, xxx};

为什么只能写成 Image[] images = null;
images = new Image[]{xxx, xxx, xxx};

却不能写成 Image[] images = null;
images = {xxx, xxx, xxx};

1.第一个是可以编译的没有问题,如果你编译不了请贴的你的完整程序,我想大概是哪里没有初始化导致的,但是单独写这个是没有问题的

2。因为你如果想把 {xxx, xxx, xxx}对象赋值给images,首先就要先有一个{xxx, xxx, xxx}对象,当你直接用 Image[] images = {xxx, xxx, xxx}; 的时候,实际上当时{xxx, xxx, xxx}对象是不存在的,所以你要先new Image[]{xxx, xxx, xxx}; 创建一个{xxx, xxx, xxx}对象,然后再赋给images

数组声明的时候直接设置为null会占内存空间,所以出错。在java中创建数组的时候可以如下:
1、int[] arr;//这样声明的数组在未调用的时候不占内存,可以在以后赋值,如arr=[1,2,3];
2、int[] arr = new int[1,2,3]在声明的时候赋值。

所以你的错误是不应该int[] arr = null;

顶!!!