Java8已經推出,讓我們看看他的魅力。讓我們看看他改變較大的部分。
一、java8概述
Java8是由Oracle(甲骨文)公司與2014年3月27日正式推出的。Java8同時推出有3套語言系統,分別是Java SE8、Java SE Emebbled 8、Java ME8。
Java SE8較以往的系統增強的功能有:
①增強了對集合式操作語言——lambda表達式的支持,“Lambda 表達式”(lambda expression)是一個匿名函數,Lambda表達式基於數學中的λ演算得名,直接對應於其中的lambda抽象(lambda abstraction),是一個匿名函數,即沒有函數名的函數。Lambda表達式可以表示閉包(注意和數學傳統意義上的不同)。注意Lambda表達式在C#,c++等語言中得到廣泛的應用,因此Java SE8將其納入了其中。
②增強一些新的時間操作的api,讓你對Java中的時間操作不再那么的煩惱。總而言之,就是Instant,LocalDate,LocalTime和LocalDateTime這幾個類,讓你操作時間的不再需要指定所謂的時區,系統自動判斷,這樣我們程序員的工作輕松了很多。
③Java SE8 引入了全新的Nashorn js 解析引擎,這個新的解釋器將會代替Java現有的Rhino解釋器。據說它執行JavaScript的速度非常之快,就像世界上最快的跑車 V8s。
④Java SE8 省去了不少的配置工作,這樣ssh架構不再繁瑣。
⑤增強對一些了編譯前的代碼的異常的動態的判斷,例如媽媽再也不用擔心我的空指針問題的異常了。
⑥去掉Jvm process 影響,性能大大的增加。
Java Emblemed SE8 與Java SE8一樣的api,不同的是能夠使用更小的架構來建立相應的應用。
Java SE8 主要使其Java 更加專注與嵌入式設備的開發,例如,機頂盒的開發。
二、下載JDK8
在Google中,輸入Java 8 download Oracle,如圖:
打開相應的連接,打開Oracle的下載頁面,我這里是windows x64位,所以進行x64位的下載。如圖:
這樣,就下好了。
三安裝JDK8
將jdk8下載以后,進行下一步下一步以后就安裝好了。如圖所示:
四在eclipse中使用JDK
注意了eclipse一定4.4及其以上的版本,eclipse4.4以下版本不支持Java se8。所以了需要下載eclipse4.4以上的版本了,這里了就不做過多的贅述。
五lambda概述
首先,我們這里簡單明白了lambda表達式的定義。Lambda表達式基於數學中的λ演算得名,直接對應於其中的lambda抽象(lambda abstraction),是一個匿名函數,即沒有函數名的函數。
lambda表達式解決了Java語言的一些頑疾有:
Java不能像函數式語言 ,實現了函數的嵌套。
匿名內部類雖然能夠實現當前線程的調用,但是不能夠跨線程調用。
匿名內部類還帶來了一個壞處,就是this與當前對象無非區別。
Java不能調用外部非靜態非final對象。
這種函數式接口,我們總結為:
函數式接口(functional interface 也叫功能性接口,其實是同一個東西)。簡單來說,函數式接口是只包含一個方法的接口。比如Java標准庫中的java.lang.Runnable和java.util.Comparator都是典型的函數式接口。java 8提供 @FunctionalInterface作為注解,這個注解是非必須的,只要接口符合函數式接口的標准(即只包含一個方法的接口),虛擬機會自動判斷,但 最好在接口上使用注解@FunctionalInterface進行聲明,以免團隊的其他人員錯誤地往接口中添加新的方法。
Lambda語法
包含三個部分
一個括號內用逗號分隔的形式參數,參數是函數式接口里面方法的參數
一個箭頭符號:->
方法體,可以是表達式和代碼塊,方法體函數式接口里面方法的實現,如果是代碼塊,則必須用{}來包裹起來,且需要一個return 返回值,但有個例外,若函數式接口里面方法返回值是void,則無需{}
總體看起來像這樣
1(parameters) -> expression 或者 (parameters) -> { statements; }
這就是我對lambda的概述。
以上篇幅,是我對java8的一些初體驗,Java8的體驗是確實是在性能有所提高,大概提高15%左右,對語法檢測也有所增強,對lambda表達式引入無非是Java8最大的亮點,這樣子,我們在寫函數操作時候,更加方便,總而言子,Java8一切為了開發人員