您的位置:首页 > 编程语言 > Java开发

Java 7的几个新特征 推荐

2009-06-05 09:17 288 查看

泰山不拒细壤,故能成其高;江海不择细流,故能就其深。
[align=center]——《秦·李斯 谏逐客令》[/align]

在昨天的JavaOne专题讲座“JDK 7中的小改变”中,Sun的资深软件工程师尤瑟夫提议Java 7的新特征应该面向“程序员友好”(Programmer-friendly),并且应该集中在对Java语言的小改变上。其中在整数变量中允许使用二进制值以及switch语句允许使用字符串作为表达式的值,就是他提议的两个改变。
在整数型变量,如byte、short、int以及long中合法使用二进制值,使得在这个领域中的编程提供了方便。如:
byte mask = b0011; //或者0b0011,十进制值为3
为了增强可读性,允许使用下划线,而且允许在十进制值中使用下划线。如:
int intMask = 0b1100_0011; //在二进制值中使用下划线
long longMask = 9_223_372_036_854_775_807L; //在十进制值中使用下划线
尤瑟夫提议的在Java 7中第二个小改变是switch语句中允许使用字符串作为其表达式的值。在目前使用的所有Java版本中, switch语句的语法格式为:
switch (integralExpression) {
case
integralValue_1 : statements;
break;
case
integralValue_2 : statements;
break;

default: statements; //可选项
}
其表达式integralExpression的值规定为除long之外的整数以及字符,但不允许是字符串。
尤瑟夫对switch语句的小改进并没有改变这个语句的语法,只是将字符串也作为switch的合法表达式和值。如:
String s = someDefinedString;

switch (s) {
case
“foo” : return 1;
case
“bar” : return 2;
}

这种改变的确是小,但给编程带来了方便。这也符合对integral expression的定义,即字符串也是一种代码确定的整数值。
由于可以对Character、Byte、Short、Integer对象做自动卸箱(auto-unboxing),所以期待中的Java 7将对switch语句做出如下新定义:
switch语句中表达式的值可以是char、byte、short、int、Character、Byte、Short、Integer、String、enum类型;否则将产生编译错误。
如下是新switch语句的更多应用例子:
例1.利用字符串作为switch语句的选项值,调用menu对象的不同方法。
String menu = myMenu.getMenu(); //getMenu返回用户选择的菜单
switch (menu) {
case “open”: myMenu.openFile(); //调用对象menu的方法
break;
case “save”: myMenu.saveFile();
break;
case “exit”: myMenu.exit();
break;
default: System.out.println("菜单选项错误");
}
例2.利用字符串作为switch的选项确定字符串变量day的值是否是工作日或者周末休息日。
switch(dayOfWeek) { //dayOfWeek为定义了的字符串
case “周1到周五” : day = "工作日";
case “周六到星期天” : day = "周末休息";
}
完整程序例子和尤瑟夫提议的其他对Java 7的小改变,见即将由清华大学出版社出版的《Java编程艺术》配套资源下载网页。

据尤瑟夫和其他Java 7领衔工程师透露,Java 7将在今年年底或明年年初正式发表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java JDK 7 新特征 小改变