JDK 17是JDK的最新版本,于2021年9月釋出。它包含了許多新特性和改進。給大家簡單介紹兩個例子,例如:
● 因為JDK17之前的随機數API并沒有統一的接口,要實作自己的随機算法頁比較麻煩,但是JDK7為僞随機數生成器提供了新的接口類型和實作,使程式使用各種PRNG算法更加容易,更好的支援流式程式設計,當然他還提供了一個新的接口RandomGenerator ,為所有PRNG算法提供統一的API,同時提供了一個新的類 RandomGeneratorFactory 來構造各種 RandomGenerator 執行個體。
public static void main(String[] args) {
//生成10個10以内的随機數
RandomGeneratorFactory<RandomGenerator> L128X1024MixRandom = RandomGeneratorFactory.of("L128X1024MixRandom");
RandomGenerator randomGenerator = L128X1024MixRandom.create(System.currentTimeMillis());
for (int i = 0; i < 10; i++) {
System.out.println(randomGenerator.nextInt(10));
}
}
● 密封類增加了可以對繼承或者對實作他們的類進行限制的這個特性,其實在JDK15的時候就首次出現了,但是他是經曆了JDK16之後,在JDK17這個版本中才終于轉正正是開始使用。
public abstract sealed class Person
permits Name, Six {
...
}
● 這個Person類被sealed修飾,就說明他是一個密封類,并且隻允許指定的2個子類繼承。
當然還有很多,我這邊隻是給大家簡單介紹幾個,讓大家入個門,其他的大家可以參考下圖,繼續學習哈!!!
但它即使他出現了很多新特性和改進,但是依然不會完全替代JDK 8。實際上,許多企業群組織仍然在使用JDK 8,并沒有完全遷移到較新的版本。
目前大部分公司可能是考慮下面的幾個問題,是以任然在繼續使用 JDK 8 而不是更新到 JDK 17:
考慮關于相容性的問題:
● 因為JDK 8 是一個經過長期使用和測試的穩定版本,與許多企業應用程式和庫已經相容,而更新到新版本可能會導緻相容性問題。如果企業應用程式依賴于不再支援的 API 或過時的庫,則更新到 JDK 17 可能需要進行重大更改。
考慮到安全的問題:
● 畢竟JDK 8 仍然受到支援,包括安全更新和修補程式。如果企業依賴于過時的庫或架構,則更新到 JDK 17 可能會增加安全風險,因為這些庫可能不支援最新版本的 JDK,進而使企業的系統容易受到攻擊。
考慮到維護的問題:
● 更新到新版本可能需要開發人員重新學習 API 和更改代碼,這可能需要更多的時間和資源。如果企業沒有足夠的時間或資源來進行更新,他們可能會選擇繼續使用 JDK 8 以避免對其系統造成影響。
考慮到性能的問題:
● 目前JDK 8 已經非常成熟,是以可能比 JDK 17 更穩定和高效。如果企業在 JDK 8 上運作的應用程式已經滿足其性能要求,則他們可能不願意冒着在更新時引入性能問題的風險。
是以綜上所述,雖然 JDK 17 有很多新功能和改進,但是在更新之前,企業需要考慮到相容性、安全、維護和性能等方面的問題。而且JDK 8和JDK 17之間有很多不同之處,包括語言功能、性能、安全性等方面的改進。但是,這些版本之間的相容性有限,一些舊的代碼可能需要進行修改才能在新版本中運作。是以,許多企業可能需要在逐漸遷移到JDK 17之前仔細考慮這些差異。
總的來說,JDK 17在許多方面都比JDK 8更好,但是否要完全替代JDK 8取決于具體情況和使用場景。許多企業群組織可能會在未來逐漸遷移到JDK 17,但這需要根據具體情況進行評估和決策。