java 数组

1、数组和集合的区别
数组是定长的,只能存入相同类型元素的一种容器,它既可以存入引用数据类型元素,也可以存入基本数据类型元素。
而集合是可以自动增长容量的,可以存入不同类型元素的另外一种容器,集合中只能存入引用数据类型的元素,不能存入基本数据类型的元素。
正因为如此,在JDK1.5的时候,加入了泛型机制和自动装箱/拆箱机制;之前需要人工手动装箱/拆箱。
 
2、数组本身是一种引用数据类型
2.1但我们发现在Eclipse里无法通过“Ctrl+鼠标左键”的方式打开一个数组的源码。
2.2不过,我们却又发现可以通过反射机制得到一个数组的Class对象,并进一步获取这个Class对象的name属性的值,示例代码如下:
 1 package test;
 2 
 3 public class Test {
 4     public static void main(String[] args) {
 5         int[] array = new int[10];
 6         System.out.println(array.getClass());
 7         System.out.println(array.getClass().getName());
 8         System.out.println();
 9         System.out.println("1".getClass());
10         System.out.println("1".getClass().getName());
11     }
12 }
View Code
1 class [I
2 [I
3 
4 class java.lang.String
5 java.lang.String
运行结果 

由此,我们知道,在本质上数组和其它的引用数据类型并没有区别,只不过是在具体的实现方式上有所不同而已。留待以后扩展......

2.3所以,数组中的每个元素相当于数组对象的成员变量。我们知道,数组元素的默认值为0、0L、0.0、0.0F、null等,而这和成员变量的默认值完全相同。
 
3、数组元素如果是引用类型,那么在数组中保存的就是一个一个的引用变量,而不是对象本身;也只能保存引用变量,否则数组元素的引用变量就没有存在的意义了。
 
4、数组的声明
int[] array = new int[10];
int[] array = new int[]{10};
int[10] array;
第三种写法在java中是错误的;而在C++中可以的,表示在Stack内存块中创建一个容量为10的数组。
 
5、数组有一个 length 属性,它保存着数组的长度。
原文地址:https://www.cnblogs.com/Mike_Chang/p/6619233.html