Java平臺中的基礎包有java.lang和java.util, 這兩個(gè)包是非常重要的,這兩個(gè)包在JDK 6中有給我們帶來(lái)了什么新東西了呢? 下面就先來(lái)看看java.lang包吧:
6.0 的java.lang包只是比5.0中多兩個(gè)類(lèi). 但是不要以為只多了2個(gè)類(lèi)就沒(méi)有什么新東西了吧. 其實(shí)從數量上是不可以看出本質(zhì)了, 有很多5.0以前的類(lèi)都增加了新的方法. 我們主要來(lái)看看6.0中我們常用的特性.
在6.0 的System類(lèi)中添加了一個(gè)console()方法. 用來(lái)與控制臺輸入(出)交互. 另外通過(guò)Console的printf()函數還可以避免非通用ASCII字符(主要是非英文字符)輸出的問(wèn)題. 下面來(lái)看個(gè)示例:
public class Output {
public static void main(String args[]) {
String string = "Español";
System.out.println(string);
System.console().printf("%s%n", string);
}
}
上面的字符中含有一個(gè) ñ 字符, 非ASCII字符, 輸出結果為:
> java Output
Espa±ol
Español
可以看到使用 System.out.println 輸出時(shí), 非ASCII字符, 給截斷了. 而console可以正確的輸出.
上面只是Console http://java.sun.com/javase/6/docs/api/java/io/Console.html 類(lèi)的一個(gè)應用, 該類(lèi)還有其他幾個(gè)有用的函數, 如 從控制臺讀取字符或者密碼字段. 下面來(lái)看個(gè)例子,注意 讀取字符和密碼的不同:
import java.io.Console;
public class Input {
public static void main(String args[]) {
Console console = System.console();
console.printf("Enter name: ");
String name = console.readLine();
char password[] = console.readPassword("Enter password: ");
console.printf("Name:%s:\tPassword:%s:%n",name, new String(password));
}
}
運行結果:
G:\JDK6>java Input
Enter name: icess
Enter password:
Name:icess: Password:icess:
在輸入秘密的時(shí)候, 和linux登陸時(shí)候輸入密碼一樣,沒(méi)有回顯.
另外Lang包中的String類(lèi)添加了一個(gè)新分方法,isEmpty(), 該方法應該是從Apache 的common 組件中引入的. 下面看個(gè)例子:
public class EmptyString {
public static void main(String args[]) {
String one = null;
String two = "";
String three = "non empty";
try {
System.out.println("Is null empty? : " + one.isEmpty());
} catch (NullPointerException e) {
System.out.println("null is null, not empty");
}
System.out.println("Is empty string empty? : " + two.isEmpty());
System.out.println("Is non empty string empty? : " + three.isEmpty());
}
}
輸出結果:
G:\JDK6>java EmptyString
null is null, not empty
Is empty string empty? : true
Is non empty string empty? : false
上面是lang包中在6.0版本引入的主要新功能,下次來(lái)看看util包中有什么變化.
聯(lián)系客服