日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java 8状态更新

發(fā)布時(shí)間:2023/12/3 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 8状态更新 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
即將到來的Java SE 8發(fā)行版的兩大新語言功能是Lambda Expressions和Modularity。 對(duì)于這兩者,這些天的狀態(tài)更新已經(jīng)發(fā)布。 我會(huì)與您共享鏈接,因此您可能會(huì)在假期中通讀它們
Oracle計(jì)劃在2013年中期發(fā)布Java SE 8。

Lambda項(xiàng)目

Lambda項(xiàng)目以及JSR-335希望提供將代碼建模為Java中數(shù)據(jù)的方法-用非精確的俗語來說,它旨在將功能用作Java中的一流對(duì)象 。 為此,lambda項(xiàng)目希望為Java語言提供以下四個(gè)擴(kuò)展:

  • Lambda表達(dá)式或閉包 ,使程序員可以以慣用語方式指定一段可執(zhí)行代碼。 它們可以存儲(chǔ)在變量中,可以作為參數(shù)傳遞給方法,也可以用作方法的返回值。
  • 擴(kuò)展目標(biāo)鍵入以將Lambda表達(dá)式綁定到特定類型的對(duì)象(類型推斷)。 這些類型可以稱為功能接口 -僅使用一種方法的Java接口。
  • 方法和構(gòu)造方法參考 ,允許程序員在要綁定到功能接口的對(duì)象上使用現(xiàn)有方法。
  • 默認(rèn)或虛擬擴(kuò)展方法,用于在不破壞現(xiàn)有實(shí)現(xiàn)的情況下(尤其是在集合庫中)向現(xiàn)有接口添加更多方法。
  • 為了給您一個(gè)想法,這是一段使用匿名內(nèi)部類進(jìn)行某些收集邏輯的代碼。 List students = // ... students.filter(new FilerFunction(){@Overridepublic boolean filter(Student s){return s.getEntryYear() == 2011;}}).map(new MapFunction<Student,Integer>(){@Overridepublic Integer map(Student s){return s.getGrade();}}).reduce(new ReduceFunction<Integer>(){@Overridepublic Integer reduce(Integer value1, Integer value2){Math.max(value1, value2);}});

    相反,以下代碼將其功能與Project Lambda結(jié)合使用:

    List students = // ... students.paralell().filter(s -> s.getEntryYear() == 2011).map(s -> s.getGrade()).reduce(Math::max);

    規(guī)范負(fù)責(zé)人和OpenJDK項(xiàng)目負(fù)責(zé)人Brian Goetz有關(guān)當(dāng)前狀態(tài)的信息可以在Lambda州找到。

    在Project Jigsaw中,由Oracle領(lǐng)導(dǎo)的OpenJDK社區(qū)試圖將模塊化引入Java語言。 該方法將不同于OSGi,因?yàn)樗麄兿M谡Z言級(jí)別上通過靜態(tài)編譯時(shí)間檢查來建立它。 甲骨文公司的員工總是說他們?cè)谂κ笿igsaw與OSGi兼容。
    Oracle首席平臺(tái)架構(gòu)師和OpenJDK項(xiàng)目負(fù)責(zé)人Marc Reinhold描述了模塊化方法的三個(gè)原則:

    • 模塊化是一種語言構(gòu)造 –在Java平臺(tái)中以標(biāo)準(zhǔn)方式支持模塊化編程的最佳方法是將語言本身擴(kuò)展為支持模塊。 開發(fā)人員已經(jīng)根據(jù)語言考慮了標(biāo)準(zhǔn)的程序組件,例如類和接口。 模塊應(yīng)該只是另一種程序組件。
    • 應(yīng)該嚴(yán)格執(zhí)行模塊邊界 –模塊私有的類應(yīng)該以與私有字段私有對(duì)類相同的方式私有。 換句話說,模塊邊界不僅應(yīng)確定類和接口的可見性,還應(yīng)確定其可訪問性。 沒有這種保證,就不可能構(gòu)建能夠安全運(yùn)行不受信任的代碼的模塊化系統(tǒng)。
    • 靜態(tài)的單版本模塊解析通常就足夠了 –大多數(shù)應(yīng)用程序不需要在運(yùn)行時(shí)動(dòng)態(tài)添加或刪除模塊,也不需要同時(shí)使用同一模塊的多個(gè)版本。 模塊系統(tǒng)應(yīng)針對(duì)常見場景進(jìn)行優(yōu)化,但也應(yīng)支持由實(shí)際用例(例如,應(yīng)用程序服務(wù)器,IDE和測試工具)推動(dòng)的范圍狹窄的動(dòng)態(tài)多版本解析形式。

    對(duì)于使用Jigsaw的程序員而言,這將特別值得注意,因?yàn)樵撜Z言現(xiàn)在將分為三個(gè)階段(而不是兩個(gè)階段):

    • 編譯時(shí)間 : 編譯模塊的類。 編譯的類與資源(配置文件,元數(shù)據(jù)文件等)一起以JMOD格式(用于Java模塊)打包在一個(gè)歸檔文件中:
    • 安裝時(shí)間:在安裝了JRE的任何計(jì)算機(jī)上,都會(huì)有一個(gè)模塊庫。 用戶可以在這里安裝Java模塊。
    • 運(yùn)行時(shí)間:可以執(zhí)行定義主類的模塊 ( Invokable Module )。 JVM將從模塊庫中加載該模塊及其所需的任何模塊,然后執(zhí)行代碼。

    馬克·萊因霍爾德(Marc Reinhold)提供的有關(guān)拼圖項(xiàng)目的當(dāng)前狀態(tài)的信息可以在拼圖項(xiàng)目:大圖—草稿1中找到 。

    參考:我們的JCG合作伙伴 JohannesTh?nes在JohannesTh?nes博客上的 Java 8狀態(tài)更新 。

    相關(guān)文章 :

    • Java 7:項(xiàng)目代幣中的代碼示例
    • Java 8虛擬擴(kuò)展方法
    • Java Lambda語法替代
    • 將Java向前推進(jìn)? 一個(gè)定義。 一年回顧。
    • Java SE 7、8、9 –推進(jìn)Java
    • Java 7功能概述

    翻譯自: https://www.javacodegeeks.com/2012/01/java-8-status-updates.html

    總結(jié)

    以上是生活随笔為你收集整理的Java 8状态更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。