在Java發展的里程碑上,有三個版本做出的改動,是革命性的 為什麼說是革命性的呢? 因為這三個版本所推出的有些新機制,在之後的Java框架開發、新類的產生等等中, 都被廣泛使用了。 那麼,這三個版本的JDK,都有哪些新特性呢? 現在,右轉哥就來帶你剖析這三個版本的JDK的新特性: [toc] 首先是 ...
目錄
在Java發展的里程碑上,有三個版本做出的改動,是革命性的
為什麼說是革命性的呢?
因為這三個版本所推出的有些新機制,在之後的Java框架開發、新類的產生等等中,
都被廣泛使用了。
那麼,這三個版本的JDK,都有哪些新特性呢?
現在,右轉哥就來帶你剖析這三個版本的JDK的新特性:
首先是 JDK5:
JDK5
新特性:
- 自動拆裝箱
- 泛型
- 增強for
- 可變參數
- 枚舉
那麼,現在,本人就來介紹下這5個新特性:
首先是 自動拆裝箱:
自動拆裝箱:
關於這個知識點,請觀看本人博文 —— 《詳解 泛型 與 自動拆裝箱》
泛型:
關於這個知識點,請觀看本人博文 —— 《詳解 泛型 與 自動拆裝箱》
增強for:
什麼是增強for呢?
可能有的同學知道這種格式以及使用,但是不知道名詞。
那麼,現在,本人就來通過一段代碼解釋下這個名詞:
package edu.youzg.about_new_features.core.about_jdk5.core;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(5);
list.add(4);
list.add(9);
list.add(9);
list.add(4);
for (Integer integer : list) {
System.out.println(integer);
}
}
}
那麼,本人來展示下運行結果:
看到上面的代碼的同學,估計驚訝到嘴都合不攏了吧。
沒錯,正是這種格式的for迴圈:
for(集合存儲的類或其父類類型 對象 : 集合)
那麼,現在,本人再來介紹下可變參數:
可變參數:
至於可變參數,我們可能自己編寫程式時還沒用到過
但是,在我們學習反射機制的時候,用過JDK中的提供的方法的可變參數。
那麼,現在,本人就來展示下可變參數的使用:
package edu.youzg.about_new_features.core.about_jdk5.core;
public class Test {
public static void main(String[] args) {
show();
show("你好");
show("我很闊奈", "清虧窩全");
}
static void show(String...arg) {
for (int i = 0; i < arg.length; i++) {
System.out.println(arg[i]);
}
}
}
那麼,本人來展示下運行結果:
枚舉:
請觀看本人博文 —— 《詳解 枚舉》
那麼,現在,本人來介紹下JDK7的新特性:
JDK7
新特性:
- 其它進位字面量
- 數字字面量可以出現下劃線
- switch 語句可以用字元串
- 泛型簡化
那麼,現在,本人就來介紹下這4個新特性:
其它進位字面量:
在我們學習編程語言之前,我們就瞭解一個知識點 —— 進位轉換問題:
有關進位轉換問題,請觀看本人博文 —— 《進位 概述》
那時候可能有同學在想:
在Java中都學了這麼久了,還沒見過其它進位,這個知識點不就沒用了嗎?
並不是的,我們用流傳輸的數據,所生成的位元組碼文件等等,
都是以其它進位存儲的數據。
那麼,在JDK7之後,Java支持其它進位的字面量了。
但是,本人要提醒一點:
print之類的方法,預設會將其他進位的數轉化為相應的十進位數,再輸出
現在,本人來提供一段代碼來展示下:
package edu.youzg.about_new_features.core.about_jdk7.core;
public class Test {
public static void main(String[] args) {
//JDK1.7 支持不同進位的寫法
/* 0b/0B開頭,就是二進位 */
System.out.println(0b100);
/* 0開頭,就是八進位 */
System.out.println(0100);
/*1~9開頭,就是十進位 */
System.out.println(100);
/* 0x/0X開頭,就是十六進位 */
System.out.println(0x100);
}
}
那麼,本人現在來展示下運行結果:
數字字面量可以出現下劃線:
Java為了增強對數值的閱讀性,JDK7提供了'_'對數據分隔。
但是,本人要說明幾點問題:
說明:
- 不能出現在進位標識和數值之間
- 不能出現在數值開頭和結尾
- 不能出現在小數點旁邊
那麼,本人來通過一段代碼來展示下:
package edu.youzg.about_new_features.core.about_jdk7.core;
public class Test {
public static void main(String[] args) {
//JDK1.7 支持位數分隔符
int num = 10_0000_0000;
System.out.println(num);
}
}
現在,本人來展示下運行結果:
可以看到,我們所加的分隔符,並沒有對數據本身產生影響,
但是增強了數據的可讀性。
switch 語句可以用字元串:
本人直接來上代碼展示這個特性:
package edu.youzg.about_new_features.core.about_jdk7.core;
public class Test {
public static void main(String[] args) {
String str = "清虧窩全";
switch (str) {
case "清虧窩全":
System.out.println("你闊奈