java2平臺(tái)標(biāo)準(zhǔn)版(J2SE)1.5版本(代號(hào)"Tiger")是對(duì)Java平臺(tái)和語(yǔ)言的下一個(gè)重要修改;目前1.5版本的J2SE包含了15個(gè)JSR的請(qǐng)求,相應(yīng)的JCP導(dǎo)致了將近100個(gè)顯著的修改.
看到這個(gè)版本帶來(lái)了這么多激動(dòng)人心的變動(dòng),你可能想知道你應(yīng)該從哪里開(kāi)始.和以往的發(fā)布一樣,所有的改動(dòng)都會(huì)有一個(gè)清楚的列表保存在"Release notes guide".這篇來(lái)自J2SE開(kāi)發(fā)團(tuán)隊(duì)的文章將帶領(lǐng)你巡視主要的變動(dòng),使得你可以在深入API文檔之前快速的把握J(rèn)2SE 1.5能提供什么.
J2SE 1.5版本將關(guān)注在下面幾個(gè)要害的主題:
簡(jiǎn)易的開(kāi)發(fā) Ease of Development
可擴(kuò)展性和性能 Scalability and Performance
監(jiān)視和治理能力 Monitoring and Manageability
桌面客戶端 Desktop Client
還有一些特性也很重要,但是和這些主題不相關(guān),所以他們被列在了文末:
其他的特性 Miscellaneous Features
簡(jiǎn)易開(kāi)發(fā) Ease of Development
你可能已經(jīng)看到了一些能使得開(kāi)發(fā)變得更加簡(jiǎn)易的Java語(yǔ)言上新特性的報(bào)告.這些特性包括了泛型類別,元數(shù)據(jù),自動(dòng)裝箱,一個(gè)增強(qiáng)的for循環(huán),枚舉類型,靜態(tài)引入,C語(yǔ)言風(fēng)格的輸入輸出,變量參數(shù),并行工具和一個(gè)簡(jiǎn)單化了的RMI接口生成.
JSR 201包含了上述語(yǔ)言特性中的4個(gè):增強(qiáng)的for循環(huán),枚舉類型,靜態(tài)導(dǎo)入和自動(dòng)裝箱;JSR 175 說(shuō)明了元數(shù)據(jù)機(jī)能;而JSR 14則具體說(shuō)明了泛型類別.
在javac編譯器中使用的默認(rèn)的語(yǔ)言是J2SE1.4.這就意味著假如你想使用任何的這些新語(yǔ)言特性必須在編譯的時(shí)候在javac的命令行上添加一個(gè)參數(shù) -source 1.5.(譯者按:這也是目前很多的開(kāi)發(fā)人員下載了這個(gè)版本以后發(fā)現(xiàn)無(wú)法使用這些新特性的原因.)
元數(shù)據(jù) Metadata
J2SE 1.5 中的元數(shù)據(jù)特性提供了一個(gè)連接附加數(shù)據(jù)到Java Class,Interface,Method和Field中的能力.這些附加的數(shù)據(jù)或者注解能被javac編譯器或者其他的工具識(shí)別,并且可以根據(jù)配置保存在class文件中,并且能在運(yùn)行時(shí)通過(guò)Java的reflection API來(lái)發(fā)現(xiàn).
給Java平臺(tái)添加元數(shù)據(jù)的一個(gè)主要原因是似的開(kāi)發(fā)和運(yùn)行工具能得到一個(gè)基礎(chǔ)框架,使得可以減少在編碼和發(fā)布的時(shí)候需要的額外的努力.一個(gè)工具能使用這些元數(shù)據(jù)信息來(lái)產(chǎn)生一些額外的代碼或者在調(diào)試的時(shí)候提供額外的信息.
代替元數(shù)據(jù)工具,下面的范例代碼創(chuàng)建了一個(gè)智能調(diào)試的元數(shù)據(jù)注解.這個(gè)注解將在隨后的調(diào)試中簡(jiǎn)單的顯示出來(lái).我們可以看到大部分的元數(shù)據(jù)標(biāo)簽組成了一個(gè)標(biāo)準(zhǔn)的,固定的集合.
import java.lang.annotation.*;
import java.lang.reflect.*;
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@interface debug {
boolean devbuild() default false;
int counter();
}
public class MetaTest {
final boolean PRodUCtion=true;
@debug(devbuild=production,counter=1) public void testMethod() {
}
public static void main(String[] args) {
MetaTest mt = new MetaTest();
try {
Annotation[] a = mt.getClass().getMethod("testMethod").getAnnotations();
for (int i=0; iSystem.out.println("a["+i+"]="+a[i]+" ");
}
} catch(NoSuchMethodException e) {
System.out.println(e);
}
}
} 有了元數(shù)據(jù)處理工具,很多重復(fù)的編碼步驟可以減少到一個(gè)簡(jiǎn)潔的元數(shù)據(jù)標(biāo)簽中.比如訪問(wèn)JAX-RPC的時(shí)候需要的遠(yuǎn)程接口服務(wù)實(shí)現(xiàn)可以按照下面這樣實(shí)現(xiàn):
以前 Before
public interface PingIF extends Remote {
public void ping() throws RemoteException;
}
public class Ping implements PingIF {
public void ping() {
}
}
用了元數(shù)據(jù)后 After
public class Ping {
public @remote void ping() {
}
}
Java2平臺(tái)標(biāo)準(zhǔn)版(J2SE)1.5版本(代號(hào)"Tiger")是對(duì)Java平臺(tái)和語(yǔ)言的下一個(gè)重要修改;目前1.5版本的J2SE包含了15個(gè)JSR的請(qǐng)求,相應(yīng)的JCP導(dǎo)致了將近100個(gè)顯著的修改.
看到這個(gè)版本帶來(lái)了這么多激動(dòng)人心的變動(dòng),你可能想知道你應(yīng)該從哪里開(kāi)始.和以往的發(fā)布一樣,所有的改動(dòng)都會(huì)有一個(gè)清楚的列表保存在"Release notes guide".這篇來(lái)自J2SE開(kāi)發(fā)團(tuán)隊(duì)的文章將帶領(lǐng)你巡視主要的變動(dòng),使得你可以在深入API文檔之前快速的把握J(rèn)2SE 1.5能提供什么.
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注