Java 8狀態更新

即將到來的Java SE 8發行版的兩大新語言功能是Lambda Expressions和Modularity。 對于這兩者,這些天的狀態更新已經發布。 我會與您共享鏈接,因此您可能會在假期中通讀它們 ;-)
Oracle計劃在2013年中期發布Java SE 8。

Lambda項目

Lambda項目以及JSR-335希望提供將代碼建模為Java中數據的方法-用非精確的俗語來說,它旨在將功能用作Java中的一流對象 。 為此,lambda項目希望為Java語言提供以下四個擴展:

  1. Lambda表達式閉包 ,使程序員可以以慣用語方式指定一段可執行代碼。 它們可以存儲在變量中,可以作為參數傳遞給方法,也可以用作方法的返回值。
  2. 擴展目標鍵入以將Lambda表達式綁定到特定類型的對象(類型推斷)。 這些類型可以稱為功能接口 -僅使用一種方法的Java接口。
  3. 方法和構造方法參考 ,允許程序員在要綁定到功能接口的對象上使用現有方法。
  4. 默認或虛擬擴展方法,用于在不破壞現有實現的情況下(尤其是在集合庫中)向現有接口添加更多方法。
為了給您一個想法,這是一段使用匿名內部類進行某些收集邏輯的代碼。
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結合使用:

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

規范負責人和OpenJDK項目負責人Brian Goetz有關當前狀態的信息可以在Lambda州找到。

在Project Jigsaw中,由Oracle領導的OpenJDK社區試圖將模塊化引入Java語言。 該方法將不同于OSGi,因為他們希望在語言級別上通過靜態編譯時間檢查來建立它。 甲骨文公司的員工總是說他們在努力使Jigsaw與OSGi兼容。
Oracle首席平臺架構師和OpenJDK項目負責人Marc Reinhold描述了模塊化方法的三個原則:

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

對于使用Jigsaw的程序員而言,這將特別值得注意,因為該語言現在將分為三個階段(而不是兩個階段):

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

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

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

相關文章 :

  • Java 7:項目代幣中的代碼示例
  • Java 8虛擬擴展方法
  • Java Lambda語法替代
  • 將Java向前推進? 一個定義。 一年回顧。
  • Java SE 7、8、9 –推進Java
  • Java 7功能概述

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373846.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373846.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373846.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 18 - 6 TreeMap嵌套使用

HashMap嵌套HashMap   動物     犬類         哈士奇   2         薩摩耶   1     貓類        波斯貓   2        加菲貓   3 先存儲元素&#xff0c;然后遍歷元素 1 package map_son;2 3 import java.util.HashMap;4 import…

程序設計語言

程序設計語言使用于書寫計算機程序的語言。程序設計語言有3個方面的因素&#xff0c;即語法&#xff0c;語義和語用。語法標識程序的結構或形式。語義表示程序的含義。語用表示程序與使用者的關系。 程序設計語言的發展史 程序的復雜性度量 1&#xff0c;代碼行度量法 出錯率&a…

python集合類型是一種具體的數據類型_Python3基礎語法之集合類型

set也是一種組合數據類型&#xff0c;支持成員關系操作(in)、對象大小計算操作符(len())&#xff0c;并且是iterable。集合數據類型至少提供一個set.isdisjoin()方法&#xff0c;支持比較&#xff0c;也支持為邏輯操作(在集合用于聯合、交叉等上下文中使用)。只有可哈希運算的對…

Linux 安裝之U盤引導

說到裝系統最簡單的方法無非就是找個系統安裝光盤來然后就一步一步慢慢的安裝。簡單是簡單但好似大多數人好像都木有Linux的安裝光盤。因此只能用U盤來模擬光盤的功能來裝系統咯。 電腦上裝有Windows 7現要裝Linux變雙系統。 安裝Linux前的準備&#xff1a; 1、電腦上分出空閑的…

OSGi:簡介

為基于Java的系統創建的OSGi提供了模塊化系統的框架。 OSGi使得可以定義每個單獨模塊與其他模塊的依賴關系&#xff0c;并使用戶可以控制生命周期并動態更改系統的每個組件。 OSGi是一個規范&#xff0c;最常見的實現可以算作Equinox &#xff0c; Apache Felix和Knoplerfish 。…

一起動手打造個人娛樂級linux

我們使用電腦&#xff0c;一直以來用的都是windows&#xff0c;但是對于像我這種愛折騰的人來說&#xff0c;嘗試使用linux系統應該是一種不錯的體驗。說到linux&#xff0c;許多人可能都沒聽過&#xff0c;或者知道的人對它印象是這樣的&#xff1a; 然而&#xff0c;linux發展…

PostgreSQL數據類型

http://blog.csdn.net/neo_liu0000/article/details/6254086 第六章 數據類型 6.1概述 PostgreSQL 提供了豐富的數據類型。用戶可以使用 CREATE TYPE 命令在數據庫中創建新的數據類型。PostgreSQL 的數據類型被分為四種&#xff0c;分別是基本數據類型、復合數據類型、域和偽類…

centos 卸載ffmpeg_CentOS Linux 操作系統安裝 FFmpeg 教程

FFmpeg 是一個非常熱門的開源項目&#xff0c;用來編解碼音頻視頻流&#xff0c;被廣泛用于各種流服務中。本教程在 CentOS 6、7、8 上面都可以使用&#xff0c;用來安裝 FFmpeg 軟件。一、安裝前需求一個 sudo 賬戶&#xff0c;一般都是默認 root 賬戶即可。1、CentOS 8安裝所…

Linux 火狐瀏覽器安裝Flash插件

Linux系統安裝完畢后&#xff0c;發現火狐瀏覽器視頻播放不了而且總是提示安裝Flash。而按火狐瀏覽器上的提示Flash插件安裝總是失敗&#xff0c;木有辦法只能手動安裝Flash插件啦。 到Flash官網&#xff1a;http://get.adobe.com/cn/flashplayer/ 下載系統對應的Flash插件&…

按匯總分組/多維數據集

時不時地&#xff0c;您會遇到一個使您達到SQL限制的要求。 我們中的許多人可能會提早放棄并使用Java / [或您的語言]計算內容。 相反&#xff0c;使用SQL可能是如此簡單快捷。 如果您使用的是高級數據庫&#xff0c;例如DB2 &#xff0c; Oracle &#xff0c; SQL Server &…

TCPUDP

TCP(傳輸控制協議) 建立連接&#xff0c;形成傳輸數據的通道在連接中進行大數據傳輸&#xff08;數據大小不受限制&#xff09;通過三次握手完成連接&#xff0c;是可靠協議&#xff0c;安全送達&#xff08;三次握手向服務器發送請求&#xff0c;響應請求回復&#xff0c;發送…

Windows和linux雙系統——修改默認啟動順序

電腦上裝了Windows 7和Ubantu雙系統&#xff0c;由于Linux系統用的次數比較少并且還是默認的啟動項對此很不能容忍&#xff0c;因此得修改Windows為默認的啟動項。 由于電腦上的系統引導程序是GRUB&#xff0c;因此修改當然也就落到Linux系統上啦。 修改/boot/grub/grub.cfg該文…

ft232h引腳_usb轉串口芯片 ft232的奇怪現象

硬件平臺&#xff1a;stm32f407ft232RL按照手冊上的電路&#xff0c;我用USB接口給ft232RL供電&#xff0c;如下圖&#xff1a;0288f358ccd0026690b2443b41d98f0f_224.png (0 Bytes, 下載次數: 12)2010-12-14 22:54 上傳我在這個電路的基礎上我用單片機串口和芯片對應的TX和RX相…

微軟Team Foundation Service 的Scrum模板中的Feature和Backlog Items 的區別【轉載】

Features help us plan work better in Team Foundation Service Scrum process 【原文&#xff1a;http://www.nsilverbullet.net/2013/06/04/features-help-us-plan-work-better-in-team-foundation-service-scrum-process/】 Recently a new work item type named “Featur…

LeWeb – 2011 –綜述

在我去機場前幾個小時&#xff0c;我將寫最后一篇與LeWeb相關的文章。 這次&#xff0c;我將專注于會議本身。 參加過幾次開發人員會議&#xff08;雖然不多&#xff0c;但足以給您帶來一定的經驗&#xff09;&#xff0c;我已經開發了自己的自定義會議等級框架。 我使用以下6條…

Java 入門基礎——面向對象的特征

計算機軟件系統是現實生活中的業務在計算機中的映射&#xff0c;而現實生活中的業務其實就是一個個對象協作的過程。面向對象編程就是按現實業務一樣的方式將程序代碼按一個個對象進行組織和編寫&#xff0c;讓計算機系統能夠識別和理解用對象方式組織和編寫的程序代碼&#xf…

(總結)密碼破解之王:Ophcrack彩虹表(Rainbow Tables)原理詳解(附:120G彩虹表下載)...

http://www.ha97.com/4009.html轉載于:https://www.cnblogs.com/chaizp/p/5111188.html

python游走代碼_介紹一個全局最優化的方法:隨機游走算法(Random Walk)

1. 關于全局最優化求解全局最優化是一個非常復雜的問題&#xff0c;目前還沒有一個通用的辦法可以對任意復雜函數求解全局最優值。上一篇文章講解了一個求解局部極小值的方法——梯度下降法。這種方法對于求解精度不高的情況是實用的&#xff0c;可以用局部極小值近似替代全局最…

iOS單元測試

iOS單元測試異步測試需要建立預期&#xff0c;因為蘋果的單元測試都是同步的&#xff0c;測試到異步的時候建立一個預期&#xff0c;預期如果在規定時間&#xff08;自定義&#xff09;完成&#xff0c;代表單元測試通過。 還有 猴子測試 &#xff0c;就是去github上找到猴子測…

調試JVM

在某些&#xff08;極少數&#xff09;情況下&#xff0c;您可能會遇到使JVM本身崩潰的情況。 我最近通過將ThreadGroup的名稱設置為null來進行管理 。 在這些情況下&#xff0c;調試JVM本身很有用&#xff0c;這樣可以更精確地定位崩潰。 這是完成此操作的步驟&#xff08;它們…