最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談JDK7和JDK8的區(qū)別在哪

 更新時(shí)間:2021年06月03日 09:30:28   作者:我是方小磊  
面試總是遇到這個(gè)問(wèn)題,做一個(gè)小總結(jié),文中有非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下

一、接口中的default方法

一般來(lái)說(shuō)接口中的方法都是不實(shí)現(xiàn)的,基本通過(guò)實(shí)現(xiàn)類(lèi)來(lái)實(shí)現(xiàn)方法。但是jdk8中提供了一種被default修飾的方法,可以直接在接口中進(jìn)行實(shí)現(xiàn)。

二、lambda表達(dá)式

jdk8引入了lambda表達(dá)式,也可稱(chēng)為closure(閉包),通常是在需要一個(gè)函數(shù),但又不想費(fèi)神去命名一個(gè)函數(shù)的場(chǎng)合下使用,也就是指匿名函數(shù)。
lambda允許把函數(shù)作為一個(gè)方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)。

由于其幾乎被所有主流開(kāi)發(fā)語(yǔ)言支持。是java8新引入的一種語(yǔ)法,是一種緊湊的傳遞代碼的方式。使用lambda表達(dá)式可以使代碼變的更加簡(jiǎn)潔緊湊。

三、函數(shù)式接口

函數(shù)式接口的引入是為了函數(shù)式編程的,函數(shù)式編程往往依賴(lài)于lambda表達(dá)式。

定義函數(shù)式接口有兩個(gè)步驟:

1)確保接口中有且僅有一個(gè)抽象方法:
2)使用注解@FunctionalInterface修飾接口

四、StreamAPI

JDK8中引入了StreamAPI,對(duì)于學(xué)過(guò)Flink或Spark的學(xué)者應(yīng)該對(duì)此比較熟悉,其實(shí)就是類(lèi)似于一種流式的數(shù)據(jù)處理,從dataSource到中間的operator操作,再到最后的dataSink。

Stream的中間操作有map,filter等操作。而流式的數(shù)據(jù)處理往往就是通過(guò)函數(shù)式編程實(shí)現(xiàn)的。

在這里插入圖片描述

五、移出永久代,元空間替換

JDK7使用永久代存儲(chǔ)類(lèi)的元數(shù)據(jù),JDK8使用元空間存儲(chǔ)類(lèi)的元數(shù)據(jù)。元空間和永久代都是用來(lái)存儲(chǔ)class相關(guān)信息,包括class對(duì)象的Method,F(xiàn)ield等,元空間和永久代其實(shí)都是方法區(qū)的實(shí)現(xiàn),只是實(shí)現(xiàn)有所不同,所以說(shuō)方法區(qū)其實(shí)只是一種JVM的規(guī)范。

區(qū)別:

兩者最大的區(qū)別是元空間使用本地內(nèi)存,而永久代使用的是JVM的內(nèi)存。

元空間優(yōu)勢(shì):

優(yōu)勢(shì)就是元數(shù)據(jù)分配只受本地內(nèi)存大小的限制。本地內(nèi)存剩余多少理論上metaspace就可以有多大,這解決了空間不足的問(wèn)題,不過(guò)也不可能任其無(wú)限壯大,JVM默認(rèn)在運(yùn)行時(shí)會(huì)根據(jù)需要?jiǎng)討B(tài)的設(shè)置其大小

六、HashMap中的優(yōu)化

1)增加紅黑樹(shù)

2)解決jdk1.7多線程下的死循環(huán):

擴(kuò)容使用尾插法,拋棄頭插法

3)rehash的優(yōu)化:

jdk7擴(kuò)容的rehash是重新計(jì)算桶的位置,而jdk8則進(jìn)行了優(yōu)化,不需要進(jìn)行重新計(jì)算。

七、currentHashMap的優(yōu)化

jdk7是使用分段鎖實(shí)現(xiàn)線程安全,jdk則使用sy關(guān)鍵字和大量的CAS操作實(shí)現(xiàn)。

到此這篇關(guān)于淺談JDK7和JDK8的區(qū)別在哪的文章就介紹到這了,更多相關(guān)JDK7和JDK8的區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot中thymeleaf模板使用詳解

    springboot中thymeleaf模板使用詳解

    這篇文章將更加全面詳細(xì)的介紹thymeleaf的使用。thymeleaf 是新一代的模板引擎,在spring4.0中推薦使用thymeleaf來(lái)做前端模版引擎。
    2017-05-05
  • 簡(jiǎn)單講解Java設(shè)計(jì)模式編程中的單一職責(zé)原則

    簡(jiǎn)單講解Java設(shè)計(jì)模式編程中的單一職責(zé)原則

    這篇文章主要介紹了Java設(shè)計(jì)模式編程中的單一職責(zé)原則,這在團(tuán)隊(duì)開(kāi)發(fā)編寫(xiě)接口時(shí)經(jīng)常使用這樣的約定,需要的朋友可以參考下
    2016-02-02
  • Java實(shí)現(xiàn)解析dcm醫(yī)學(xué)影像文件并提取文件信息的方法示例

    Java實(shí)現(xiàn)解析dcm醫(yī)學(xué)影像文件并提取文件信息的方法示例

    這篇文章主要介紹了Java實(shí)現(xiàn)解析dcm醫(yī)學(xué)影像文件并提取文件信息的方法,結(jié)合實(shí)例形式分析了java基于第三方庫(kù)文件針對(duì)dcm醫(yī)學(xué)影像文件的解析操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • Springboot+Flowable?快速實(shí)現(xiàn)工作流的開(kāi)發(fā)流程

    Springboot+Flowable?快速實(shí)現(xiàn)工作流的開(kāi)發(fā)流程

    這篇文章主要介紹了Springboot+Flowable?快速實(shí)現(xiàn)工作流的開(kāi)發(fā)流程,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Java中Double除保留后小數(shù)位的幾種方法(小結(jié))

    Java中Double除保留后小數(shù)位的幾種方法(小結(jié))

    這篇文章主要介紹了Java中Double保留后小數(shù)位的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • idea中maven本地倉(cāng)庫(kù)jar包打包失敗和無(wú)法引用的問(wèn)題解決

    idea中maven本地倉(cāng)庫(kù)jar包打包失敗和無(wú)法引用的問(wèn)題解決

    本文主要介紹了idea中maven本地倉(cāng)庫(kù)jar包打包失敗和無(wú)法引用的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • MyBatis核心配置文件深入分析

    MyBatis核心配置文件深入分析

    這篇文章主要介紹了MyBatis核心配置文件,MyBatis的前身就是iBatis,iBatis本是由Clinton Begin開(kāi)發(fā),后來(lái)捐給Apache基金會(huì),成立了iBatis開(kāi)源項(xiàng)目。2010年5月該項(xiàng)目由Apahce基金會(huì)遷移到了Google Code,并且改名為MyBatis
    2022-12-12
  • java實(shí)現(xiàn)遞歸文件列表的方法

    java實(shí)現(xiàn)遞歸文件列表的方法

    這篇文章主要介紹了java實(shí)現(xiàn)遞歸文件列表的方法,實(shí)例分析了java采用遞歸算法遍歷文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Java中字符串替換的幾種常用方法總結(jié)

    Java中字符串替換的幾種常用方法總結(jié)

    這篇文章主要介紹了Java中字符串替換的幾種常用方法,包括String類(lèi)的replace、replaceAll和replaceFirst方法,使用StringBuilder或StringBuffer類(lèi),自定義替換方法,以及使用第三方庫(kù)如Apache?Commons?Lang,需要的朋友可以參考下
    2025-04-04
  • Flowable流程引擎API與服務(wù)

    Flowable流程引擎API與服務(wù)

    這篇文章主要介紹了Flowable流程引擎API與服務(wù),引擎API是與Flowable交互的最常用手段,總?cè)肟邳c(diǎn)是ProcessEngine,使用ProcessEngine,可以獲得各種提供工作流或BPM方法的服務(wù),下面我們來(lái)詳細(xì)了解
    2023-10-10

最新評(píng)論

左贡县| 大宁县| 五台县| 夹江县| 山东省| 漳州市| 延寿县| 酒泉市| 泰和县| 金平| 射阳县| 兰州市| 吉水县| 北海市| 朝阳市| 莱芜市| 湟中县| 砀山县| 长汀县| 长武县| 台南县| 昌宁县| 平凉市| 南开区| 蚌埠市| 丹棱县| 平南县| 德格县| 枣强县| 临猗县| 东乌| 武安市| 镶黄旗| 永平县| 紫金县| 牟定县| 长春市| 临高县| 沙雅县| 潞西市| 福安市|