昨天开始就业班的课程就开始了,前几天张孝祥老师给我们讲了java的一些基础的东西,张老师的课知识量大,深入浅出,令人获益匪浅,接下来就用我理解的东西在这里和大家一起探讨一下。
sun公司在java1.5版本增加了不少新特性,例如:基本数据类型的自动装箱与拆箱、可变参数、增强for循环、枚举、泛型、注解等等。
首先说说泛型。
java1.5之前的版本,向一个集合中存储对象的时候不管什么类型的对象都可以存储到同一个集合当中,这样的话在获取对象的时候就容易出现强制转换类型的错误。有了泛型之后,在存储对象之前可以给要存储对象的集合加上泛型,这样就限定了这个集合中只能存储同一种类型的对象,从集合中获取对象的时候编译器也知道对象的类型,这样就不需要对对象进行强制转换类型了,这样以来可以把运行时可能遇到的错误转移到了编译期,从而优化了程序设计。
Vector<Person> v = new Vector<Person>();
//创建集合对象的时候为集合对象制定了一种类型,以后只能向集合v中存储Person类型的元素。
泛型是提供给java编译器使用的,集合限定了泛型之后,java编译器会把不符合指定泛型的元素挡在集合外面,编译器在编译带泛型的集合时会去掉泛型信息,不会影响编译效率,所以参数化的泛型类型,编译后的class字节码和原始集合的字节码是一样的,由于这个原因,如果想要在集合中加入其他类型的元素,可以通过getclass()方法获取集合的字节码,在通过反射获取集合,再调用集合的add()方法向集合中加入其他类型的元素即可。