Java 5.0
此條 |
Java
自動 裝 箱 /拆箱(Auto-Boxing/Unboxing)
[编辑] int int1 = 1;
Integer integer2 = new Integer(int1);
int int3 = integer2.intValue();
int int1 = 1;
Integer integer2 = int1; // 自動 裝 箱
int int3 = integer2; // 自動 拆箱
实际
int int1 = 1;
Integer integer2 = Integer.valueOf(int1); // 自動 裝 箱 的 本 质,通 过调用 valueOf将 值对象 化
int int3 = integer2.intValue(); // 自動 拆箱的 本 质,通 过调用 xxxValue将 对象值化
泛型(Generic Types)
[编辑]泛型就像
HashMap hm = new HashMap();
int i=1;
String tt="test";
hm.put(new Integer(i), tt);
HashMap <Integer, String>hm = new HashMap<Integer, String>();
int i=1;
String tt = "test";
hm.put(i, tt); // 在 這裏對 int自動 裝 箱 成 Integer,也使用 了 參 數 的 型 別 檢 查
Annotation
@deprecated
(@Deprecated
// JDK 1.4
/**
* @todo to be implemented
**/
void gimmeSomeLoving() {
throw new Exception("not implemented");
}
// JDK 1.5
@todo
void gimmeSomeLoving() {
throw new Exception("not implemented");
}
枚 举类型 (enum)
[编辑]Enum 一般用来表示一组相同类型的常量。如性别、
// JDK 1.4
class JavaTech {
public static final int J2ME = 1;
public static final int J2SE = 2;
public static final int J2EE = 3;
}
// JDK 1.5
public enum NewJavaTech {
J2ME, J2SE, J2EE
}
国 际化
[编辑]Java语言严格
另外,
public class HelloWorld {
private String文 本 = "HelloWorld";
}
輸入 輸出
[编辑]java.util.Scanner
java.util.Formatter
printf()
foreach迴圈
[编辑]foreach迴圈,
int[] array1 = {1, 3, 5};
for(int i : array1){ // foreach迴圈
System.out.println("Number: "+i);
}
可變長 度 的 引數
[编辑]printf()
printf()
也變
static引入
[编辑]這個
static import java.lang.System.*;
public class HelloWorld {
public static void main(String args[]){
out.println("Hello World.");
}
}
批評
[编辑]Java 5.0雖然
自動 裝 箱 /拆箱的 矛盾
[编辑] Integer int1 = new Integer(1);
Integer int2 = new Integer(1);
System.out.println(int1 >= int2); // 檢 查兩者 的 值(触 发了自 动拆箱 ), true
System.out.println(int1 <= int2); // 檢 查兩者 的 值(触 发了自 动拆箱 ), true
System.out.println(int1 != int2); // 檢 查兩者 的 參考 位置 (没 有 触 发自动拆箱 ),true!
System.out.println(int1 == int2); // 实际为檢查兩者 的 參考 位置 ,false! 不能 认为这是int值类型 间的对比,此时还没有 发生自 动拆箱 行 为。
泛型擦 除
[编辑]注 释
[编辑]- ^ New Features and Enhancements J2SE 5.0. [2013-05-14]. (
原始 内容 存 档于2021-01-26).