首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师-java高新技术01

2012-10-26 
黑马程序员-java高新技术01----------------------android培训、java培训、java学习型技术博客、期待与您交流

黑马程序员-java高新技术01

----------------------android培训、java培训、java学习型技术博客、期待与您交流!----------------------

?

jdk1.5中的一些新特性:

?

1.静态导入(Static Import)

??????? 什么时候使用静态导入呢?保守起见的说,当你需要频繁的使用到某个类中的静态成员的时候,就可以使用静态导入了,静态的导入的方式跟导入普通的类类似,这样在使用该类中的静态成员时,就可以略写该类。不过凡事都有两面性,如果你滥用静态导入的特性,这将会使你程序的可读性降低,并且会与其他使用静态导入的成员混肴,当一段时间过后,将很难区分出静态成员是属于哪个类的。还有,当使用静态导入的特性时,最好仅导入要使用到的静态成员,如果导入类中的所有静态成员,同样会导致代码的可读性降低。

????????注:静态导入并不会占用任何的资源。

/** * 静态导入示例 */import static java.lang.Math.*;//静态导入语法public class StaticImport {public static void main(String[] args) {System.out.println(max(10, 9));}}

?

2.可变参数(Varargs)

?????? ?举个例子,在jdk 1.5之前当我们对多个数进行运算时,需要写多个重载的方法以适应不同的需求,而可变参数的出现改善了这种情况。可变参数内部会自动的封装一个数组,所以我们可以像数组那样来访问可变参数。可变参数只能出现在参数列表的最后。

?

/* * 可变参数示例 */public class VariableParameter {public static void main(String[] args) {System.out.println(add1(2, 3));System.out.println(add2(2, 3, 4));System.out.println(add3(2, 3));System.out.println(add3(2, 3, 4));}//jdk 1.5之前public static int add1(int x, int y) {return x + y;}public static int add2(int x, int y, int z) {return x + y + z;}//jdk 1.5  可变参数public static int add3(int x, int... args) {int sum = x;for (int i = 0; i < args.length; i++) {sum += args[i];}return sum;}}

?

3.增强for循环(For-Each Loop)

???????? 语法:for (type 变量名 :变量) { ... ...}

???????? 增强for循环可以适用于数组以及继承了Iterable接口的集合类,需要注意的是迭代变量必须在()中定义,你可以再任何时候使用该特性,它可以使你的代码更加的漂亮,不过不幸的是,你并不能在任何地方使用它,比如说你想操作迭代变量中的特定元素时,使用该特性就无法满足你的需求,因为该特性隐藏了迭代器,所以无法获取特定的元素。

/* * 增强for循环示例 */public class ForEach {public static void main(String[] args) {System.out.println(add(2, 3));System.out.println(add(2, 3, 4));}public static int add(int x, int... args) {int sum = x;for (int arg : args) {sum += arg;}return sum;}}

?

4.自动装箱和拆箱(Autoboxing/Unboxing)

??????? 我们知道不能将一个int类型的变量加入到一个集合中,不过下面的代码在jdk 1.5中的确可以正常运行

?

import java.util.ArrayList;public class AutoBox {public static void main(String[] args) {ArrayList<Integer> al = new ArrayList<Integer>();al.add(1);   //自动装箱al.add(2);al.add(3);for (Integer i : al) {System.out.print(i);  //自动拆箱}}}

这就是自动装箱与拆箱功能,它会将int类型的基本数据类型变量自动的封装成一个Integer类型的对象。当我们需要取出集合中的数据时,用的仅仅是System.out.print(i);? 这样的语句而编译器确不会报错,那是因为jdk 1.5中自动拆箱功能,它会将Integer类型的对象自动的转成int基本数据类型。

?

----------------------android培训、java培训、java学习型技术博客、期待与您交流!----------------------

?

详情请查看:http://edu.csdn.net/heima

热点排行