Java 7新功能代码范例

原创
开发 后端
在Java 7已经完成的新功能中,本文作者总结了会影响到我们编码方式的四个主要更改,并附上一个简短的示例。有兴趣的话,现在就尝试一下吧。

#t#【51CTO精选译文】JDK7 milestone 5 更新已可以下载。现在,开发人员有机会尝试使用这种语言的新语法进行编码,然后看看它到底如何。今天我们介绍了Java 7中已经完成的七大功能,而以下四个主要的更改会影响到我们使用 java 以及 JKD 7 编码的方式:
◆在数字中使用下划线
◆改进的通用实例创建类型推断(diamond)
◆在switch语句中使用字符串
◆使用二进制字符

51CTO推荐专题:Java 7 下一代Java开发技术详解

下面是一个简短的示例,用于检验这些新功能。使用普通的文本编辑器,还有你离不开的老朋友 javac 和 java,可以进行测试(IDE 还不支持新的语法,应该会报错)。

  1. public class Jdk7Tests {  
  2.    
  3.     public static void main(String[] args) {  
  4.         Jdk7Tests jdk7Tests = new Jdk7Tests();  
  5.         jdk7Tests.integersWithUnderscores();  
  6.         jdk7Tests.stringSwitch();  
  7.         jdk7Tests.binaryLiteral();  
  8.         jdk7Tests.diamond();  
  9.     }  
  10.    
  11.     private void integersWithUnderscores()  
  12.     {  
  13.         int i = 1_2;  
  14.         System.out.println(i);  
  15.         i*=10;  
  16.         System.out.println(i);  
  17.         int j=2_0;  
  18.         System.out.println(i-j);         
  19.     }  
  20.    
  21.     private void stringSwitch()  
  22.     {  
  23.         String key = "akey";  
  24.         switch (key)  
  25.         {  
  26.         case "":  
  27.         {  
  28.             System.out.println("Nothing");  
  29.             break;  
  30.         }  
  31.    
  32.         case "akey":  
  33.         {  
  34.             System.out.println("Matched akey");  
  35.             break;  
  36.         }  
  37.         default:  
  38.         break;  
  39.         }  
  40.     }  
  41.    
  42.     private void binaryLiteral()  
  43.     {  
  44.         byte aByte = (byte)0b001;  
  45.         short aShort = (short)0b010;  
  46.         System.out.println(aByte + " " + aShort);  
  47.     }  
  48.    
  49.     private void diamond()  
  50.     {  
  51.         Set set = new TreeSet<>();  
  52.         set.add("c");  
  53.         set.add("b");  
  54.         set.add("a");  
  55.         for (String val : set)  
  56.         {  
  57.             System.out.println(val);  
  58.         }  
  59.     }  
  60. }  
  61.  

下划线和数字:

对于身份证或电话号码,数字中间需要有分割符号的数字,该功能非常有用。不必再将数据放入一个字符串中,然后对其进行语法分析,剔除下划线,再将其放入一个整数中。不过,当你使用带有下划线的数字进行运算时,可能会有点困惑。比如 1_2 * 2 的结果是多少?从上述示例中代码,可以看出,JVM 处理这些运算时将下划线剔除了。因此,1_2 * 10 = 120,并且 120 – 2_0 = 100。很简单。

Diamond:

这个功能应该可以简化集合的实例化。为了迎接 JKD 7 的到来,是时候更新我的自动完成代码模板了。按照我的看法,读 diamond()方法中的代码,稍微容易点。不过,对于语法没有改善什么。

使用字符串的 switch 语句:

这是相当不错的功能。现在除了整数等等之外,你还可以使用字符串进行跳转(swtich)。利用这个功能,可简化将整数变量分配到相应的字符串变量的代码。包含多处回调方法的代码通常会在某一处设置一个整数变量,表示利用 switch 构造,找到某个特定字符串,然后稍后对此进行处理。利用这个技巧,某些开发人员编写了使用 SAX 处理 XML 的代码。对于使用了这个功能的代码,应该能够减少几行。

二进制字面量:

现在,你可以使用二进制字面量这种表示方式,并且使用非常简短的代码,可将二进制字符转换为数据类型,如在byte或short。我还想不到哪里会经常用到这个功能,但某些涉及到比特的编程实现问题会较容易解决。

其他有趣的功能不一定会影响到编程,比如更好的算法实施和性能改善。据说对于某些应用程序,这些改善让性能提升了数倍。有时间,你应该亲自测试一下。

原文:Coding with JDK7 作者:CertPal

责任编辑:yangsai 来源: 51CTO.com
相关推荐

2012-07-10 10:08:32

红帽RHEL 7

2009-09-22 15:15:02

Windows 7新功文件搜索Windows Sea

2009-09-22 15:24:20

Windows 7新功文件管理

2009-02-18 21:16:16

2009-07-07 08:46:11

微软Windows 7新功能

2009-03-24 17:43:08

shaderGPUSilverlight

2009-09-22 15:59:57

Windows 7新功Jumplist开始菜单

2009-09-22 15:52:30

Windows 7新功磁盘加密Bitlocker

2009-09-22 16:03:55

Windows 7新功媒体中心

2009-09-22 15:31:50

Windows 7新功家庭组网络共享

2009-09-22 15:47:11

2009-08-31 18:40:01

Java 7新功能

2009-11-26 10:52:01

Java 7

2012-04-25 11:04:13

Visual Stud

2012-03-26 10:14:25

JavaJava 8

2009-06-12 08:45:14

微软Windows 7操作系统

2009-07-07 08:51:00

微软Windows 7新功能

2009-09-22 15:40:11

Windows 7新功画图板

2014-06-19 15:29:44

RHEL 7.0系统安装

2009-07-07 08:49:33

微软Windows 7新功能
点赞
收藏

51CTO技术栈公众号