1.当未使用泛型时,使用get()方法冲集合中取值时,返回类型都为Object类型,需要强制类型转换,(此处的强制类型转换如果与集合中的储存的类型不一致,则在编译期间不报错;但在运行时会报异常)。
2.使用add()方法时,传入参数为Object对象,不能是原生数据类型。
e.g. list.add(8) ; //error
list.add(new Integer(3)); //right
3.Object[]类型,不能强制转换为某一特定的数组类型(如:Integer[]),因为不能保证集合内所有元素为某一特定的数组类型。
4.集合中依然存放的是对象引用,而不是对象本身。
5.ArrayList底层采用数组实现,默认产生一个长度为10的Object类型数组。
6.如果增加的元素个数超过了10个,那么ArrayList底层会新生成一个数组,长度为原数组的1.5倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的元素时,重复该过程。
7.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中。
集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)。