lambda ::_Lambda项目:迈向多核及超越
生活随笔
收集整理的這篇文章主要介紹了
lambda ::_Lambda项目:迈向多核及超越
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
lambda ::
周一下午在JavaOne 2011的希爾頓舊金山大宴會廳B上做了“ Project Lambda:邁向多核和超越”(會議27400,不要與Brian Goetz的同名演講相混淆) 的演示 。大宴會廳關閉,這是一個非常大型的非主題演講場地,還有一臺大型攝像頭(帶攝像頭操作員)可以拍攝演示文稿。 可以認為這意味著會議組織者對Java SE 8 ( JSR 337 )和Lambda項目的關注引起了極大的興趣。 演講者Alex Buckley (Java語言和虛擬機的規范負責人)和Daniel Smith (項目Lambda規范負責人)是演示者,接下來將展示其摘要。本課程涵蓋Java SE 8的主要新語言功能-lambda表達式,方法引用和擴展方法-并探討現有和將來的庫將如何利用它們來使客戶端代碼同時具有更高的性能和更少的錯誤。 -容易。
功能接口是“一種方法的接口”。 Lambda表達式是“創建功能接口實現的一種方式”。 Lambda表達式允許簡單,簡潔地表達功能的“實質”,尤其是與匿名類的膨脹相比。 幾張幻燈片中包含了一些代碼示例,這些代碼示例顯示了我們今天如何做以及lambda表達式支持的更簡潔的表示形式。 Lambda表達式“可以引用封閉范圍內的任何有效最終變量。” 這意味著final關鍵字不是必需的,而是需要在lambda表達式引用的方法中將其視為final(未分配引用)。 宣布了更多的lambda表達式規則: this指針引用了封閉對象而不是lambda表達式。 “無需在lambda表達式中使用參數類型”,因為它們是“根據功能接口的方法簽名來推斷的”(無需動態鍵入)。 方法引用支持“將方法作為lambda表達式使用”的“重用”。 Buckley談到外部迭代是Java庫中當前的主要方法。 在這種習慣用法中,“客戶端決定迭代”并且“不是線程安全的”。 他談到了引入并行for循環來解決此問題的缺點,但從并行for方法中提取了一些概念:“過濾器”和“歸約器”。 Buckley引入了“內部迭代有利于并行習語”的想法,因為它不需要串行執行并且是線程安全的。 Java 8面臨的問題之一是需要改造庫以使用lambda表達式,但是它們已經定義了在庫和集合中大量使用的接口。 可以用來解決此問題的一種方法是在Java中使用靜態擴展方法,類似于C#中可用的方法。 這種方法有很多優點,但也有一些主要缺點,例如無法使用反射。 決定重新考慮“不能向接口添加操作”的“規則”。 基于此,隨后決定添加虛擬擴展方法 ,該方法在接口中提供默認實現,該接口僅在接收器類未使用默認實現覆蓋該方法時使用。 幻燈片標題為“您是否向Java添加了多個繼承?!” 指出“ Java始終具有類型的多重繼承”和“現在具有行為的多重繼承”,但仍不支持“狀態的多重繼承,這會導致大多數問題。” 幻燈片補充說,“行為的多重繼承是相當良性的”,并且僅當編譯分多個步驟進行時,這確實是一個問題。 在此演示文稿中強調了擴展方法是語言功能和虛擬機功能(“關于繼承和調用的其他所有內容都是VM功能!”)。 為此,項目符號指出:“如果需要,調用界面將消除多種行為的歧義。” 非Java JVM語言可以“共享財富”擴展方法,其中有一張幻燈片提供了三個示例。 Daniel Smith主持了有關并行庫主題的演示。 他展示了一張幻燈片“ Betain the New Iterable”,其中展示了一個Iterable接口,其中包括isEmpty() , forEach , filter , map , reduce和into 。 他還展示了可通過擴展方法parallel()從Iterable獲得的Parallelterable接口上的幻燈片。 Smith在其關于社區貢獻的幻燈片中提供了對JSR 335,JSR 166和Lambda項目的引用。 他還列舉了JavaOne 2011上另外四個關于lambda表達式和緊密相關主題的會議。 史密斯以Brian Laetda在Project Lambda上的一句話作為結尾: …我們相信,對Java開發人員來說,我們能做的最好的事情就是讓他們輕而易舉地朝著更具功能性的編程風格發展。 我們不會將Java變成Haskell,甚至不會變成Scala。 但是方向很明確。 ? 結論 Smith的示例清楚地表明,lambda表達式將為Java開發人員的日常工作提供巨大的好處。 他展示了我們都必須編寫數百或數千次的循環類型以及lambda表達式使之更簡潔,更簡潔的語法。 該演示文稿已經清楚地表明,隨著引入lambda表達式,Java將在流暢性和簡潔性方面獲得動態類型語言所享有的許多好處。 參考: JavaOne 2011:Lambda項目:在我們的JCG合作伙伴 Dustin Marx的啟發下,在Multimedia and Beyond上, 來自Inspired by Actual Events博客。翻譯自: https://www.javacodegeeks.com/2012/08/project-lambda-to-multicore-and-beyond.html
lambda ::
總結
以上是生活随笔為你收集整理的lambda ::_Lambda项目:迈向多核及超越的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java应用程序的令牌认证
- 下一篇: 冰岛属于哪个国家(它是发达国家吗)