一、数组
int[] arr = new int[5]; //基本数据类型数组
Student[] arr = new Student[5]; //引用数据类型数组
注意:基本数据类型数组中存储的是具体的值,而引用数据类型数组中存储的是地址值,arr[1]相当于是一个Student类的对象引用。
数组和集合存储引用数据类型,存的都是地址值
二、集合
1、集合的由来
* 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少。
2、数组和集合的区别
区别1 :
* 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
* 集合只能存储引用数据类型(对象),集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象(Integer[])
区别2:
* 数组长度是固定的,不能自动增长
* 集合的长度的是可变的,可以根据元素的增加而增长
注意:部分集合的底层也是用数组实现的,当长度需要变长时会重新建立1.5倍长度的新数组,拷贝数据,然后原数组变成垃圾,内存
3、数组和集合什么时候用(考虑内存)
* 如果元素个数是固定的推荐用数组
* 如果元素个数不是固定的推荐用集合
4、集合继承体系图