java1.5的新特性。
java作为一门语言,是sun公司出品,这门语言有自己的语法规范。同时围绕着这门语言有一些基本的类库来供大家使用。
一门程序设计语言,可以简单的认为包含两部分,一个是基本的语法规则(包括关键字),另一个是用来支持这门语言的
一些系统级得到基础类库。
所以,一门程序设计语言是可以不断被升级更新的,升级更新后的语言可能会增加新的语法规范。
java1.5和java1.4作为不同版本的java语言,就有些不一样的地方:
所以就有java1.5的新特性需要掌握:
1、java1.5支持静态导入(import static)
静态导入(import static):用于导入一个类中的一个成员,或者一个类中的所有成员。
普通导入(import):用于导入一个类,或者一个包中的所有类。
例如:import static java.lang.Math.abs;
2、java1.5支持可变参数
实现原理:由编译器隐含的创建一个数组来封装实际参数,传递给可变参数。可变参数相当于一个数组引用。
所以可以在含有可变参数的方法中将可变参数当做数组引用来使用。
好处:省去了在定义实际参数的过程中手动的new对象。只能替代很小的一类重载情况(即参数的类型相同,而个数
不同)。
规范:必须将可变参数定义在参数列表的最后一个参数位置上。
“数据类型 ... 参数名”
例子:void method(int x,int ... args){}
3、java1.5支持增强for循环
实现原理:底层本质上仍是使用迭代器(iterator)来实现的。
规范:“for(数据类型 变量名 :集合名(或者返回集合的表达式)){......}”
“变量名”必须在for()中定义,不可以定义在其他位置。
“集合名”必须实现iterable接口。
注意:数组也是一种集合。固定长度的集合。
例子:for(int arg : args){}
4、java1.5支持基本数据类型的自动装箱和拆箱
好处:使得基本数据类型和对象之间的转换无需手动操作,由系统自动完成。
例子:Integer iObj = 3;
注意:位于-128~127之间的数字(即用一个字节即可表示的数字),在被封装成对象(无论手动装箱还是
自动装箱)时,都会被放到缓存池中。当再封装一个该数字的对象时,不会再新创建一个对象,而会从
缓存池中直接取出对象来付给引用。例如:“Interger i2 = 4; Integer i3 = 5;”,i2和i3的引用相同,即值
相同。
什么是享元设计模式:
当存在很多小对象,他们的属性大部分相同,只有少数属性不同,而且这些小对象被创建后就很少改变他们的值
。这时可以将他们定义为一个对象,将少数不同属性作为对象的外部状态,即定义为对象方法的参数,由外部指定。
相同属性定义为内部状态,即定义为对象的成员。使得只需要创建一个对象,被多次使用就可以了。
5、枚举(后面单独详细讲)
6、泛型(后面单独详细讲)