Java 7新功能代碼范例
原創(chuàng)#t#【51CTO精選譯文】JDK7 milestone 5 更新已可以下載。現(xiàn)在,開發(fā)人員有機(jī)會(huì)嘗試使用這種語言的新語法進(jìn)行編碼,然后看看它到底如何。今天我們介紹了Java 7中已經(jīng)完成的七大功能,而以下四個(gè)主要的更改會(huì)影響到我們使用 java 以及 JKD 7 編碼的方式:
◆在數(shù)字中使用下劃線
◆改進(jìn)的通用實(shí)例創(chuàng)建類型推斷(diamond)
◆在switch語句中使用字符串
◆使用二進(jìn)制字符
51CTO推薦專題:Java 7 下一代Java開發(fā)技術(shù)詳解
下面是一個(gè)簡短的示例,用于檢驗(yàn)這些新功能。使用普通的文本編輯器,還有你離不開的老朋友 javac 和 java,可以進(jìn)行測(cè)試(IDE 還不支持新的語法,應(yīng)該會(huì)報(bào)錯(cuò))。
- public class Jdk7Tests {
- public static void main(String[] args) {
- Jdk7Tests jdk7Tests = new Jdk7Tests();
- jdk7Tests.integersWithUnderscores();
- jdk7Tests.stringSwitch();
- jdk7Tests.binaryLiteral();
- jdk7Tests.diamond();
- }
- private void integersWithUnderscores()
- {
- int i = 1_2;
- System.out.println(i);
- i*=10;
- System.out.println(i);
- int j=2_0;
- System.out.println(i-j);
- }
- private void stringSwitch()
- {
- String key = "akey";
- switch (key)
- {
- case "":
- {
- System.out.println("Nothing");
- break;
- }
- case "akey":
- {
- System.out.println("Matched akey");
- break;
- }
- default:
- break;
- }
- }
- private void binaryLiteral()
- {
- byte aByte = (byte)0b001;
- short aShort = (short)0b010;
- System.out.println(aByte + " " + aShort);
- }
- private void diamond()
- {
- Set
set = new TreeSet<>(); - set.add("c");
- set.add("b");
- set.add("a");
- for (String val : set)
- {
- System.out.println(val);
- }
- }
- }
下劃線和數(shù)字:
對(duì)于身份證或電話號(hào)碼,數(shù)字中間需要有分割符號(hào)的數(shù)字,該功能非常有用。不必再將數(shù)據(jù)放入一個(gè)字符串中,然后對(duì)其進(jìn)行語法分析,剔除下劃線,再將其放入一個(gè)整數(shù)中。不過,當(dāng)你使用帶有下劃線的數(shù)字進(jìn)行運(yùn)算時(shí),可能會(huì)有點(diǎn)困惑。比如 1_2 * 2 的結(jié)果是多少?從上述示例中代碼,可以看出,JVM 處理這些運(yùn)算時(shí)將下劃線剔除了。因此,1_2 * 10 = 120,并且 120 – 2_0 = 100。很簡單。
Diamond:
這個(gè)功能應(yīng)該可以簡化集合的實(shí)例化。為了迎接 JKD 7 的到來,是時(shí)候更新我的自動(dòng)完成代碼模板了。按照我的看法,讀 diamond()方法中的代碼,稍微容易點(diǎn)。不過,對(duì)于語法沒有改善什么。
使用字符串的 switch 語句:
這是相當(dāng)不錯(cuò)的功能。現(xiàn)在除了整數(shù)等等之外,你還可以使用字符串進(jìn)行跳轉(zhuǎn)(swtich)。利用這個(gè)功能,可簡化將整數(shù)變量分配到相應(yīng)的字符串變量的代碼。包含多處回調(diào)方法的代碼通常會(huì)在某一處設(shè)置一個(gè)整數(shù)變量,表示利用 switch 構(gòu)造,找到某個(gè)特定字符串,然后稍后對(duì)此進(jìn)行處理。利用這個(gè)技巧,某些開發(fā)人員編寫了使用 SAX 處理 XML 的代碼。對(duì)于使用了這個(gè)功能的代碼,應(yīng)該能夠減少幾行。
二進(jìn)制字面量:
現(xiàn)在,你可以使用二進(jìn)制字面量這種表示方式,并且使用非常簡短的代碼,可將二進(jìn)制字符轉(zhuǎn)換為數(shù)據(jù)類型,如在byte或short。我還想不到哪里會(huì)經(jīng)常用到這個(gè)功能,但某些涉及到比特的編程實(shí)現(xiàn)問題會(huì)較容易解決。
其他有趣的功能不一定會(huì)影響到編程,比如更好的算法實(shí)施和性能改善。據(jù)說對(duì)于某些應(yīng)用程序,這些改善讓性能提升了數(shù)倍。有時(shí)間,你應(yīng)該親自測(cè)試一下。
原文:Coding with JDK7 作者:CertPal


















