精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

編程沒有銀彈:探討Java8新增特性的優缺點

開發 后端
Java 8或許是 迄今為止最令人期待的Java版本,最初定于今年的9月份發布,但由于一系列的安全漏洞問題,目前已推遲到明年的3月份。

Java 8或許是 迄今為止最令人期待的Java版本,最初定于今年的9月份發布,但由于一系列的安全漏洞問題,目前已推遲到明年的3月份。

Java 8試圖“創新”,根據 微軟對這個詞的定義,就是把其他框架或語言里成熟的特性“偷”進來。在新版本發布之前,Java社區就已經開始討論Lambda項目、Streams、函數式接口等其他好東西。下面就讓我們一起來看下這些偉大的功能,看看它們各自的優缺點,好讓你更好地應用在項目中。

Streams

集合(Collections)的改進也是Java 8的一大亮點,而讓集合越來越好的核心組件則是“Stream”。它與java.io包里的InputStream和OutputStream是完全不同的概念,它是一個全新的概念,大家不要混淆。

此外,Stream的出現也并不是要取代ArrayLists或其他集合,它提供了一種操作大數據接口,讓數據操作更容易和更快。Stream是 一次性使用對象,一旦被遍歷,就無法再次遍歷。在遍歷時,它具有過濾、映射以及減少遍歷數等功能。每個Stream都有兩種模式:順序執行和并行執行,其 能夠利用多核處理器的優勢,并可以使用 fork/join并行方式來拆分任務和加速處理過程。

順序流:

  1. List <Person> people = list.getStream.collect(Collectors.toList()); 

并行流:

  1. List <Person> people = list.getStream.parallel().collect(Collectors.toList()); 

顧名思義,當使用順序方式去遍歷時,每個item讀完后再讀下一個item。而使用并行去遍歷時,數組會被分成多個段,其中每一個都在不同的線程中處理,然后將結果一起輸出。

并行流實例:

  1. List originalList = someData; 
  2. split1 = originalList(0, mid); 
  3. split2 = originalList(mid,end); 
  4. new Runnable(split1.process()); 
  5. new Runnable(split2.process()); 
  6. List revisedList = split1 + split2; 

由于一個Stream只能被遍歷一次,通常會返回另外一個Stream,可以使用終端方法(terminal method)來獲取有用的結果,終端方法可以是sum()、collect()或toArray()等。在Stream被終止之前,操作的結果不會被實現。

  1. Double result = list.getStream().mapToDouble(f -> f.getAmount()).sum();   
  2. List<Person> people = list.getStream().filter(f -> f.getAge() > 21).collect(Collectors.toList());   

該功能最大的好處是允許使用多核處理器來處理集合,這樣處理速度會更加快速。而最主要的問題則是可讀性。隨著流鏈的加長,很有可能影響可讀性。其它問題則來源于內置的新東西來支持這個新路徑,這些是功能接口和Lambda。

函數式接口

在Java 8里將會有一個全新的功能——函數式接口(functional interfaces),就是可以在接口里面添加默認方法,并且這些方法可以直接從接口中運行。

這樣就可以在接口中實現集合的向后兼容,并且無需改變實現這個方法的類,就可以讓Stream放置到接口中。一般而言,在接口中創建一個默認方法,然后實現該接口的所有類都可以使用Stream(無論是默認方法還是非默認方法)。

基本上就是一種多繼承形式,這樣就變成了實現者之間的問題,作為實現人員,必須重寫這些方法,他們可以選擇使用超方法(supermethod),這也就意味著,許多實現接口的類需要改寫。

這有可能是Java 8里最讓人關心的細節,也許Java 8里的函數式接口對于熟悉Scala的開發者來說不算新功能,但是他們可能會拿函數式接口與Scala的特征進行比較。然而,兩者之間不同的是:Java 8里的函數式接口不能將一個引用指向實現類,而Scala允許通過self關鍵字來實現該操作。會有一些語言狂熱者說,Java 8里的函數式接口只允許多繼承行為,而不是狀態。而Scala里的多繼承特征既可以是行為也可以是狀態。

在Java里實現事務和其它項目,我們一般會使用 JavaAssist或 cglib的擴展類來構建動態代理和字節碼操作。而Scala的特行可以讓我們更直接地實現。

一方面,函數式接口可能會被以繼承方式濫用,另一方面,它們盡量不與Scala特征重復。

Lambda

Java 8的另一大亮點是引入Lambda表達式,使用它設計的代碼會更加簡潔。當開發者在編寫Lambda表達式時,也會隨之被編譯成一個函數式接口。下面這個例子就是使用Lambda語法來代替匿名的內部類,代碼不僅簡潔,而且還可讀。

沒有使用Lambda的老方法:

  1. button.addActionListener(new ActionListener() {   
  2. public void actionPerformed(ActionEvent ae) {   
  3. System.out.println(“Action Detected”);   
  4. }   
  5. }   
  6. );  

使用Lambda:

  1. button.addActionListener(e -> {   
  2. System.out.println(“Action Detected”);   
  3. }   
  4. );   

#p#

讓我們來看一個更明顯的例子。

不采用Lambda的老方法:

正如你所看到的,使用Lambda表達式不僅讓代碼變的簡單、而且可讀、最重要的是代碼量也隨之減少很多。然而,在某種程度上,這些功能在Scala等這些JVM語言里已經被廣泛使用。

并不奇怪,Sclala社區是難以置信的,因為許多Java 8里的內容看起來就像是從Scala里搬過來的。在某種程度上,Java 8的語法要比Scala的更詳細但不是很清晰,但這并不能說明什么,如果可以,它可能會像Scala那樣構建Lambda表達式。

一方面,如果Java繼續圍繞Lambda來發展和實現Scala都已經實現的功能,那么可能就不需要Scala了。另一方面,如果它只提供一些 核心的功能,例如幫助匿名內部類,那么Scala和其他語言將會繼續茁壯成長,并且有可能會凌駕于Java之上。其實這才是最好的結果,有競爭才有進步, 其它語言繼續發展和成長,并且無需擔心是否會過時。

Java time

Time在Java里已有很長一段時間,首先出現的java.util.Date這個包,其次還有java.sql.Date、 Calendar。但處理時間和日期需要大量的monkey代碼,因此,像Joda Time等第三方庫因此誕生。姍姍來遲,Oracle終于決定在Java里添加一個 java.time包來清理各種時間接口。它看起來很符合現在開發者的胃口,擁有各種各樣的時間API。

Java API可以處理一些時空連續體方面的特性,比如距離、質量、重量等,這是值得稱贊的,但我仍然認為 Currency會處理得更好。我認為Java API需要好好地修剪而不是添加更多的東西,并且首先Java API應該對這些基本元素提供標準的兼容。

Nashorn

Nashorn是Rhino的接替者,該項目的目的是基于Java實現一個輕量級高性能的JavaScript運行環境。

JDK 7中添加了invokeDynamic,其主要是用來支持非Java語言,尤其是動態語言。而JDK 8中的Nashorn將會給開發者提供一個更加實用的JavaScript實現。事實上,Oracle已經有了他自己的Node.js實現,叫做 Node.jar。這似乎比在Java里運行JavaScript更加吸引人。

Accumulators

自從JDK中集成了 java.util.concurrent以來,該特性并沒有停止發展。相反,JDK 8將構建于JDK 7和fork/join框架之上,并通過加法器(adders)和累加器(Accumulators)得到了進一步的發展。

首先是同步。但是,如果你使用同步在多線程之間進行增量計數,那么同步有可能難以負擔。在Java 6中通過讓非競爭鎖更廉價(cheap)來使同步不那么難以負擔。其中大多數會使用Vector來提升老應用程序性能,幾乎每一個單線程都受到了Java Activation Framework的影響。

Java.util.concurrent包使得線程池和其他相對復雜的多線程結構變得更好,但是,倘若你想要通過跨線程來增加一個變量,那么就 有點大材小用了。對此,我們采用一種比真正的鎖更輕更快的原子。在JDK 8中,我們采用Accumulators和adders,這些要比原子輕量多了,對于大多數異構代碼來說,這些足以滿足它們的需求,如果線程太多,那么可 以增加一個計數器。但想要看到類似map/reduce實現或統計跨線程之間的總和,你仍然需要使用原子,因為如果要讀取這些跨線程的值,累積的順序是無 法得以保證的。

HashMap修復

在Java中使用String.hashCode()實現已是大家熟知的bug。如果在特定的代碼中引入HashMap,可能會導致拒絕服務攻擊。基本上,如果有足夠多的參數hash到相同值,那么可能會消耗過多的CPU時間。

通常,HashMap bucket采用鏈表的方式來存儲map條目。使用此算法存在大量的沖突,并且增加了O(1)到O(N)這種哈希變化的復雜性,為了解決這一問題,通過采用平衡tree算法來降低復雜度。

TLS SNI

SNI是 服務器名稱標識(Server Name Identification)的縮寫,由于大多數公共網站的訪客數量不是太多,幾乎很少能達到數百萬用戶。很多網站都使用相同的IP地址和基于名字的虛擬主機,比如我訪問 podcasts.infoworld.com和 [/url][url=http://www.infoworld.com/]www.infoworld.com, 最后的網址是一樣的,但訪問的主機名是不一樣的,所以我有可能會訪問到不同的Web頁面。然而,因為SSL,我可能無法分享IP地址。由于HTTP主機頭 是建立在基于命名的虛擬主機上,并且主機也是依賴SSL來實現加密/解密的,所以,不得不為每個SSL證書申請不同的IP地址。

在最近幾年都是采用SNI來解決這一問題的,Java也不例外。這種方式得到了大多數瀏覽器的支持,現在Apache和Java也支持它。這意味著過不了多久,我們就可以看到Apache和基于Java的服務器使用Oracle的SSL實現來支持SNI,稱作 JSSE。

總結

總之,Java 8包含了一大堆非常實用的特性,這也是許多開發者想使用最新版本的原因之一。在我看來,Stream是最好的一個特性。但愿并行集合也能夠為其進程性能帶來一些提升。而函數式接口可能并不會像預期中的那樣好用,萬一使用不當,可能會給開發者帶來很多麻煩。

本文只是總結了部分Java 8新特性,我們相信,在發布的時候將會有更多新特性與大家見面。你可以通過Simon Ritter在JavaOne 2013大會上的演講PPT來了解目前已經添加到Java 8中的55個新特性。

至于該如何取舍,各位開發者應該根據自己的實際需求去研究和使用,并不是所有的新特性就是好的,它們也存在優缺點。

原文鏈接:http://www.iteye.com/news/28143

責任編輯:陳四芳 來源: ITeye.com
相關推薦

2023-07-19 08:03:05

Future異步JDK

2023-09-04 10:55:17

2009-08-10 17:41:42

C# Singleto

2022-12-26 00:02:24

重構代碼軟件

2016-12-12 15:22:41

編程

2010-05-19 16:15:05

SVN與CVS

2021-10-09 09:52:17

云存儲公共云遷移

2011-04-08 11:15:20

編程語言編程游戲開發

2011-04-08 10:49:35

編程語言編程游戲開發

2019-11-15 13:26:17

編程語言微軟C語言

2023-10-08 08:46:29

Java遍歷方式

2014-06-17 09:42:05

軟件開發軟件設計

2020-05-29 07:20:00

Java8異步編程源碼解讀

2009-06-19 18:36:15

JPAHibernate

2010-06-21 14:14:33

OSPF協議

2020-01-09 10:44:47

Hadoop 3缺點優點

2022-07-18 13:36:13

零信任網絡安全

2021-04-12 14:40:50

人臉識別面部識別人工智能

2018-05-17 11:05:56

2021-03-02 07:13:54

Java8版本升級
點贊
收藏

51CTO技術棧公眾號

99久久精品国产毛片| 国产一区二区三区自拍| 欧美性色黄大片| 亚洲综合欧美日韩| 国产乱淫片视频| 亚洲午夜黄色| 国产一区二区三区免费视频| 精品国产鲁一鲁一区二区三区| 国产福利在线免费观看| 久久久精品影视| 91精品国产99久久久久久红楼 | 国产精品久久久久久久久久久久久| 亚洲精品国产精品国自| theporn国产在线精品| 色婷婷av一区| wwwwww欧美| yw视频在线观看| 99视频热这里只有精品免费| 国产在线拍揄自揄视频不卡99| 日韩久久久久久久久| 欧美高清视频手机在在线| 亚洲高清av在线| 中文av一区二区三区| 欧美gv在线观看| 亚洲久草在线视频| 鲁鲁狠狠狠7777一区二区| 99在线观看精品视频| 老牛国产精品一区的观看方式| 日韩在线精品一区| 日韩精品卡通动漫网站| 粉嫩久久久久久久极品| 欧美一级专区免费大片| 欧美精品久久久久久久久25p| 国产99在线| 一区二区三区在线看| 亚洲激情一区二区| 国产小视频福利在线| av成人老司机| 国产精品国产一区二区| jizz国产视频| 久久69国产一区二区蜜臀| 国产成人高潮免费观看精品| 日韩乱码一区二区| 亚洲午夜精品久久久久久app| 久久精品国产亚洲| 男人的午夜天堂| 三区四区不卡| 久久精品成人欧美大片| 亚洲不卡的av| 日韩免费高清| 中文字幕日韩有码| 极品蜜桃臀肥臀-x88av| 教室别恋欧美无删减版| 亚洲日本欧美中文幕| 中文字幕国产综合| 一区二区导航| 亚洲欧美色图片| 亚洲图片另类小说| 精品久久不卡| 中文字幕亚洲欧美日韩2019| 日本黄区免费视频观看| 午夜av一区| 欧美成人免费网| 久草免费在线观看视频| 好吊日精品视频| 91chinesevideo永久地址| 免费视频久久久| 日本特黄久久久高潮 | 中文字幕一区日韩精品| 日韩一区二区麻豆国产| 亚洲欧洲国产视频| 欧美成人专区| 夜夜嗨av色综合久久久综合网| 女人黄色一级片| 999国产精品视频| 欧美大片免费观看| 探花视频在线观看| 免费成人在线观看| 亚洲最大成人网色| 亚洲人成色777777老人头| 欧美激情一区二区三区四区| 中国成人在线视频| 92久久精品| 色婷婷久久久久swag精品| 黄色片视频在线| 日本在线一区二区三区| 日韩精品久久久久久久玫瑰园| 欧洲av一区二区三区| 欧美国产小视频| 中文字幕欧美日韩精品| 国产一级二级毛片| 日本不卡高清视频| 粉嫩高清一区二区三区精品视频 | 国产极品尤物在线| 日本欧美韩国| 欧美tk—视频vk| 天天躁日日躁aaaa视频| 亚洲一区二区日韩| 国产91精品视频在线观看| 丰满人妻一区二区三区四区| 国产剧情一区在线| 欧美日韩国产精品一卡| 中文字幕中文字幕在线中高清免费版| 欧美日韩免费看| www.色欧美| 三级精品视频| 美女精品视频一区| 日本三级一区二区三区| 成人动漫在线一区| 亚洲啪啪av| 三级在线看中文字幕完整版| 欧美一区二区三区思思人 | 亚洲欧洲在线观看av| 999在线观看视频| 91精品网站在线观看| 日韩精品视频在线播放| a级片在线观看免费| 日本三级亚洲精品| 激情欧美一区二区三区中文字幕| 国产精品久久久久久福利| 色呦呦一区二区三区| 欧洲熟妇的性久久久久久| 久久精品免费一区二区三区| 国产精品91久久| 亚洲欧美丝袜中文综合| 亚洲一区二区在线视频| av噜噜在线观看| 成人免费在线播放| 国产97色在线| 手机亚洲第一页| 亚洲第一成年网| 中文字幕1区2区| 91精品99| 91情侣偷在线精品国产| 免费观看在线午夜影视| 在线视频亚洲| 国产精品日韩欧美大师| 你懂的视频在线播放| 午夜精品一区在线观看| 国产精品91av| 综合久久亚洲| 亚洲一区二区三区毛片| 五月天婷婷在线视频| 日本高清不卡一区| 成年人网站免费看| 久久久国产亚洲精品| 久久精品国产精品国产精品污| 伦理在线一区| 亚洲成年人在线| 五月天综合在线| 成人h版在线观看| 91精品国产91久久久久麻豆 主演| 我要色综合中文字幕| 欧美日本高清一区| 成人精品在线播放| 亚洲mv在线观看| 国产肉体xxxx裸体784大胆| 亚洲国产裸拍裸体视频在线观看乱了中文| julia一区二区中文久久94| 羞羞的视频在线看| 精品国产乱子伦一区| 国产一级做a爰片在线看免费 | www国产视频| 亚洲精品女人| 久久综合九色综合网站| 欧美极度另类| 综合136福利视频在线| 一级淫片免费看| 亚洲精品免费电影| 伊人网综合视频| 久久精品免费| 亚洲一区二区三区乱码 | 欧美精品久久久久久久多人混战 | 我不卡伦不卡影院| 91手机在线播放| 草草视频在线观看| 亚洲欧美国产精品| 91成品人影院| 亚洲二区视频在线| 蜜桃av免费看| 韩国女主播成人在线| 屁屁影院ccyy国产第一页| 天堂俺去俺来也www久久婷婷| 国产精品久久久久久久av大片| 黄色精品免费看| 亚洲国产精品女人久久久| 精品一区二三区| 亚洲欧美二区三区| 一区二区三区少妇| 狠狠久久亚洲欧美| 六月丁香激情网| 91亚洲一区| 精选一区二区三区四区五区| 久久夜夜久久| 久久人人爽人人| av免费在线一区二区三区| 日韩精品中文字幕一区二区三区| 国产精品久久久免费视频| 国产精品视频看| 中文字幕第3页| 久久av中文字幕片| 亚洲美免无码中文字幕在线 | 久久深夜福利免费观看| 无码国产伦一区二区三区视频| 欧美日韩国产电影| 国产微拍精品一区| 亚洲免费伊人电影| 中文字幕成人动漫| 波多野结衣精品在线| 欧美一级xxxx| 久久久777| 男人用嘴添女人下身免费视频| 天天精品视频| 日韩精品一区二区三区外面| 中文字幕亚洲在线观看| 成人国产精品久久久久久亚洲| 国产精品伦理| 午夜剧场成人观在线视频免费观看| 日本在线视频网| 国产一区二区三区欧美| 午夜福利一区二区三区| 日韩一区二区三区观看| 亚洲特级黄色片| 色综合天天综合给合国产| 久久久久久久久99| **欧美大码日韩| 青青青视频在线播放| 国产日韩欧美一区二区三区综合| 毛茸茸free性熟hd| 国产精品系列在线播放| 亚洲精品视频三区| 久热成人在线视频| 午夜免费高清视频| 老司机午夜精品视频| 欧美日韩在线视频一区二区三区| 亚洲成人中文| 国产免费一区二区视频| 欧美日本一区二区视频在线观看| 一本久久a久久精品vr综合| 精品一区不卡| 午夜免费电影一区在线观看| 欧美日本成人| 欧美午夜欧美| 国产精品欧美日韩一区| 欧美久久久久久久| 亚洲资源网站| 欧美1o一11sex性hdhd| 神马久久av| 欧洲一区二区日韩在线视频观看免费| 色狼人综合干| 欧美连裤袜在线视频| 神马影视一区二区| 日韩欧美一区二区三区四区| 加勒比久久综合| 日韩中文不卡| 91麻豆精品国产91久久久平台 | 一区二区三区视频在线观看视频| 国产一区二区久久精品| 在线观看二区| 久久九九亚洲综合| 天天干在线视频论坛| 欧美精品久久久久久久| freexxx性亚洲精品| 欧美又大又粗又长| 日本一区免费网站| 国产一区香蕉久久| 欧洲一区在线| 精品国产一区二区三区四区精华 | 亚洲欧美日韩在线高清直播| 国产高清av在线| 精品国产一区二区三区久久狼5月| 自拍视频在线网| 欧美裸体xxxx极品少妇| 欧美办公室脚交xxxx| 国产成+人+综合+亚洲欧美丁香花| 成人国产网站| 99视频在线播放| 亚洲v天堂v手机在线| 视频在线观看成人| 欧美福利视频| 中文字幕日本最新乱码视频| 男人的天堂久久精品| 网站在线你懂的| 不卡电影免费在线播放一区| 国产精品高清无码在线观看| 综合激情成人伊人| 国产污污视频在线观看| 欧美日韩国产不卡| 日本高清视频www| 在线观看亚洲视频| 欧美人体视频xxxxx| 日本亚洲欧洲色| 免费一级欧美在线大片| 久久涩涩网站| 亚洲一级淫片| 爆乳熟妇一区二区三区霸乳| 国产精品一区不卡| 亚洲码无人客一区二区三区| 一区二区三区精品在线观看| 无码人妻av免费一区二区三区 | 97超碰免费在线观看| 99riav久久精品riav| 波多野结衣久久久久| 精品高清美女精品国产区| 夜夜嗨aⅴ一区二区三区| 亚洲第一网站免费视频| 日韩精品成人av| 日本韩国欧美精品大片卡二| 天堂精品在线视频| 在线观看成人av电影| 久久国产66| 美女扒开腿免费视频| 综合久久给合久久狠狠狠97色| 人妻丰满熟妇av无码区| 精品久久久久久久久久久久包黑料| 成人精品一区二区| 55夜色66夜色国产精品视频| 日韩视频在线直播| 伊人久久大香线蕉午夜av| 免费亚洲视频| 伊人影院在线观看视频| 国产精品久久久久aaaa樱花| 99久久精品国产亚洲| 精品免费一区二区三区| 黄色免费网站在线观看| 国产精品露脸av在线| 男男gay无套免费视频欧美| 精品丰满人妻无套内射| 国产不卡免费视频| jizz亚洲少妇| 91精品在线观看入口| 免费黄网站在线| 成人福利视频网| 97视频热人人精品免费| 污污网站在线观看视频| 国产精品天天看| 特级西西444www高清大视频| 亚洲欧美色图片| 色老太综合网| 日本不卡一区二区三区在线观看| 午夜亚洲精品| 熟妇高潮精品一区二区三区| 精品久久香蕉国产线看观看亚洲| 少妇无码一区二区三区| 91精品国产成人| 日韩三区视频| 国产精品欧美激情在线观看| 91亚洲精品久久久蜜桃| 中文字幕亚洲高清| 日韩精品在线私人| 亚洲成人看片| 日韩欧美亚洲精品| 紧缚奴在线一区二区三区| 国产日产在线观看| 6080yy午夜一二三区久久| 九七久久人人| 波多野结衣一区二区三区在线观看| 欧美成人一区二免费视频软件| 中文字幕在线视频一区二区| 亚洲激情图片一区| 日韩一区免费视频| 欧美亚洲免费电影| 精品视频97| 亚洲午夜精品一区| 亚洲综合久久久久| 香蕉视频免费看| 国产精品草莓在线免费观看| 日韩在线视屏| 日韩成人av影院| 日韩欧美在线中文字幕| 成人一区二区不卡免费| 亚洲综合第一页| 亚洲永久在线| 操她视频在线观看| 精品剧情在线观看| 自拍偷拍欧美视频| 伊人色综合影院| av一本久道久久综合久久鬼色| 国产成人无码一区二区在线播放| 中文字幕国内精品| aaa国产精品视频| 久久久久久香蕉| 亚洲欧美激情小说另类| 天天干天天爱天天操| 国产精品久久久久久亚洲影视| 一本到12不卡视频在线dvd| japanese在线观看| 欧美日韩高清在线| 男人的天堂免费在线视频| 亚洲欧洲精品在线| 99久久久国产精品| 在线观看视频二区| 97久久久免费福利网址| 日韩av二区| 国模私拍在线观看| 欧美日韩五月天| 天堂中文av在线资源库| 自拍视频一区二区三区| 久久综合九色综合欧美98 | 国产精品一区二区三区四区|