1:1.数组可以同时存储“基本数据类型”和“引用数据类型”(数组可以同时存储基本数据类型和引用数据类型,基本数据类型存储值,而引用数据类型存储的是内存地址值)2、数组有对应的class,是JVM运行时创建的,所以没有对应的class文件;(通过数组创建语法int[]a={1,100,10,20};可以看出无法查看数组类和源码);数组的父类是Object3。当数组存储在内存中时,内存地址是连续的。这是数组存储元素的特性(feature)。数组实际上是一种简单的数据结构。Collection:List,继承自Collection,可重复且有序的对象Set,继承自Collection,不可重复且无序的对象Map,键值对,提供键到值的映射。密钥是无序且唯一的;值无序可重复1.集合类的结构2.相对于集合的特性,线程安全的效率比较低。Vector已经淘汰,可以用ArrayList代替。Hashtable已经淘汰,可以用HashMap代替。如果是高并发的线程安全实现,推荐ConcurrentHashMap。3.数组和集合的区别(1)集合的来源数组的长度是固定的。当添加的元素超过数组长度时,需要重新定义数组,太麻烦了!所以Java内部给我们提供了一个集合类,可以存放任意对象,长度可以改变。它随元素的增加而增加,随元素的减少而减少。(二)区别1.数组可以存储基本数据类型,也可以存储引用数据类型(基本数据类型存储值,引用数据类型存储地址值)集合只能存储引用数据类型(对象),集合也可以存储基本数据类型数据类型,但是在存储的时候会自动装箱(JDK1.5新特性)到一个对象中2.数组的长度是固定的,但是集合的长度是可以改变的。3、定义数组时,必须指定数组元素类型。直接获取数组实际存储的元素个数,length用于获取数组的长度,但是可以通过size()直接获取集合实际存储的元素个数。5、集合有多种实现方式和不同的适用场合,如List、Set、Map等;不像数组,数组只是使用分配连续空间的方法6.集合以接口和类的形式存在,具有封装、继承、多态的特点,可以通过简单的方法和属性调用来实现这种复杂的操作大大提高软件开发效率。(3)用法:1.如果元素个数固定,建议使用数组2.如果元素个数不固定,建议使用集合
