Java 8與Java 9 新特性

由於要實習和找工作了,所以開始好好準備,一步一步的走,先從第一步,可能會問的問題:Java 8和Java 9
這裏主要列出一部分,具體可以參考文章末尾的連接。
Java 8 新特性:
1、引入Lambda表達式
它允許把函數作爲參數傳進方法中,以前使用匿名內部類來實現該功能。
在最簡單的形式中,一個lambda可以由用逗號分隔的參數列表、–>符號與函數體三部分表示。
如果函數體比較多 可以放在花括號中。
Arrays.asList( “a”, “b”, “d” ).forEach( e -> { System.out.print( e );System.out.print( e );} );
2、接口引入默認方法與靜態方法
Java8以前接口中是不能有方法體的,只能是聲明方法,但在Java8版本中,可以使用默認方法和靜態方法,默認方法且並一定要實現。
3、JVM的新特性
Metaspace(元空間) 取代PermGen空間(永久保存區),這樣JVM可使用的內存空間默認就是沒有限制,可以使用本地內存,當然也可以限制通過設置-XX:MaxMetaspaceSize。
4、Nashorn JavaScript引擎
新的Nashorn JavaScript引擎引擎可以在JVM上開發和運行js應用。
5、並行數組
Java8中增加了很多新的方法來支持數組的並行處理,最重要的方法之一parallelsort(),用於支持多核機器的並行數組排序。
與串行排序相比,開始在數據量少的時候,可能不如串行排序耗時少,但當數據量達到某一個界限後,並行排序時間明顯比串行排序耗時少。
6、stream
java.util.stream將生成環境的函數式編程引入Java中,對集合帶來極大地增強,而且支持並行操作。
分爲兩種:
Intermediate:一個流可以後面跟隨零個或多個 intermediate 操作。其目的主要是打開流,做出某種程度的數據映射/過濾,然後返回一個新的流,交給下一個操作使用。這類操作都是惰性化的(lazy),就是說,僅僅調用到這類方法,並沒有真正開始流的遍歷。
Terminal:一個流只能有一個 terminal 操作,當這個操作執行後,流就被使用“光”了,無法再被操作。所以這必定是流的最後一個操作。Terminal 操作的執行,纔會真正開始流的遍歷,並且會生成一個結果,或者一個 side effect。
可以通過集合和數組等獲得stream
Collection.stream()
Collection.parallelStream()
Arrays.stream(T array) or Stream.of()
引用和參考文章(本文只用於自己學習筆記,所以想看最全新特性可以看這些鏈接):
http://www.importnew.com/19345.html
http://blog.csdn.net/u014470581/article/details/54944384
http://blog.csdn.net/u014115273/article/details/53318733
https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/


Java 9新特性:
1、Java平臺級模塊系統
從整體到模塊
Java 一直堅持向後兼容,每更新一個版本,都變得更大更復雜。在過去的 JDK 版本中,沒有強制要求模塊化,使得 Java 平臺和 JDK 越來越讓人糾結。即便只是一個小小的 hello world,也需要加載幾乎所有的 API。Jigsaw 項目致力於把 Java 平臺和 JDK 分解成更小更有組織的模塊。用戶可以使用模塊來構建軟件,並且不需要包含所有的 API。
模塊化的 JAR 文件都包含一個額外的模塊描述器。在這個模塊描述器中, 對其它模塊的依賴是通過 “requires” 來表示的。另外, “exports” 語句控制着哪些包是可以被其它模塊訪問到的。所有不被導出的包默認都封裝在模塊的裏面。
(Linking)
你的應用程序模塊現在將聲明其對其他應用程序模塊的依賴以及對其所使用的 JDK 模塊的依賴。爲什麼不使用這些信息創建一個最小的運行時環境,其中只包含運行應用程序所需的那些模塊呢? 這可以通過 Java 9 中的新的 jlink 工具實現。你可以創建針對應用程序進行優化的最小運行時映像而不需要使用完全加載 JDK 安裝版本。
2、交互式編程語言: JShell(Java REPL)
Java現在加入交互式編程語言俱樂部,程序員可以從控制檯啓動jshell,並直接啓動輸入和執行java代碼。
3、接口私有方法
在Java8中,接口引入默認的方法,但如果在接口上有幾個默認方法,代碼幾乎相同,會發生什麼情況? 通常,您將重構這些方法,調用一個可複用的私有方法。 但默認方法不能是私有的。但現在在Java9中你可以使用私有的輔助方法。
4、多版本兼容 JAR
新版本庫的出現要兼容以前的版本,所以在Java9中多版本兼容的jar能讓你創建僅在特定版本的Java運行環境中運行庫程序時選擇所使用的class版本。
文章只是爲了學習,如果查看全的新特性請看查看下面的連接:
http://www.importnew.com/24528.html
https://baijiahao.baidu.com/s?id=1577884434195971672&wfr=spider&for=pc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章