日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Java8面试题

發(fā)布時(shí)間:2023/12/3 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java8面试题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載自? ?Java8面試題

問題一:

Java8支持函數(shù)編程是什么意思?

在Java 8之前,所有東西都是面向?qū)ο蟮摹3嗽Z之外,java中的 所有內(nèi)容都作為對象存在。對方法/函數(shù)的所有調(diào)用都是使用對象或類引用進(jìn)行的。

方法/功能本身并不是獨(dú)立存在的。

使用Java 8,引入了函數(shù)式編程。所以我們可以使用匿名函數(shù)。Java是一種一流的面向?qū)ο笳Z言。除了原始數(shù)據(jù)類型之外,Java中的所有內(nèi)容都是一個(gè)對象。即使是一個(gè)數(shù)組也是一個(gè)對象。每個(gè)類都創(chuàng)建對象的實(shí)例。沒有辦法只定義一個(gè)獨(dú)立于Java的函數(shù)/方法。無法將方法作為參數(shù)傳遞或返回該實(shí)例的方法體。

?

問題二:

什么是Java8中的MetaSpace?它與PermGen Space有何不同?

使用JDK8時(shí),permGen空間已被刪除。那么現(xiàn)在將元數(shù)據(jù)信息存儲(chǔ)在哪里?此元數(shù)據(jù)現(xiàn)在存儲(chǔ)在本機(jī)內(nèi)存中,稱為“MetaSpace”。該內(nèi)存不是連續(xù)的Java堆內(nèi)存。它允許通過垃圾收集,自動(dòng)調(diào)整,元數(shù)據(jù)并發(fā)解除分配來改進(jìn)PermGen空間。

?

?

問題三:

什么是Lambda表達(dá)式?

Lambda Expression可以定義為允許用戶將方法作為參數(shù)傳遞的匿名函數(shù)。這有助于刪除大量的樣板代碼。Lambda函數(shù)沒有訪問修飾符(私有,公共或受保護(hù)),沒有返回類型聲明和沒有名稱。

Lambda表達(dá)式允許用戶將“函數(shù)”傳遞給代碼。所以,與以前需要一整套的接口/抽象類想必,我們可以更容易地編寫代碼。例如,假設(shè)我們的代碼具有一些復(fù)雜的循環(huán)/條件邏輯或工作流程。使用lambda表達(dá)式,在那些有難度的地方,可以得到很好的解決。

?

問題四:

lambda表達(dá)式的優(yōu)點(diǎn)是什么?

Lambda函數(shù)的優(yōu)點(diǎn):

  • 直到Java 8列表和集合通常由客戶端代碼從集合中獲取迭代器來處理,然后使用它迭代其元素并依次處理每個(gè)元素。如果要并行處理不同的元素,那么客戶代碼而不是集合的責(zé)任就是組織它。 通過Java 8,可以更輕松地在多個(gè)線程上分發(fā)集合的處理。 集合現(xiàn)在可以在內(nèi)部組織自己的迭代,將并行化的責(zé)任從客戶端代碼轉(zhuǎn)移到庫代碼中。

  • 更少的代碼行。如上所述,用戶必須僅以聲明方式聲明要執(zhí)行的操作。 n > System.out.println(“Hello World”+ n); 所以用戶必須鍵入減少的代碼量。

  • 使用Java 8 Lambda表達(dá)式可以實(shí)現(xiàn)更高的效率。通過使用具有多核的CPU,用戶可以通過使用lambda并行處理集合來利用多核CPU。

?

問題五:

解釋Java 8內(nèi)部與外部迭代?

外部迭代器 -此迭代器也稱為活動(dòng)迭代器或顯式迭代器。對于這種類型的迭代器,元素迭代的控制是由程序員來完成的。這意味著將由程序員來定義何時(shí)以及如何調(diào)用下一個(gè)迭代元素。

內(nèi)部迭代器 -此迭代器也稱為被動(dòng)迭代器,隱式迭代器或回調(diào)迭代器。對于這種類型的迭代器,對迭代器元素的控制權(quán)在于迭代器本身。程序員只告訴迭代器“對集合的元素執(zhí)行什么操作”。因此,程序員只需要聲明將要做什么,而不用管理和控制單個(gè)元素的迭代是如何發(fā)生的。

?

問題六:

解釋Java 8-中間操作與終端操作?

流操作可以分為兩部分:
中間操作 -返回另一個(gè)Stream的中間操作,允許操作以查詢的形式連接。?

終端操作 -產(chǎn)生非流,結(jié)果如原始值,集合或根本沒有值。

?

?

問題七:

什么是函數(shù)接口?

@FunctionalInterface是在Java 8中添加的新接口。 它表示該接口將用作功能接口。

package?com.javainuse;@FunctionalInterface public?interface?Greetings?{public?void?sayHello(String?name); }

此注釋是可選的。即使沒有用@FunctionalInterface注釋,接口仍然可以用作功能接口。 我們編寫lambda函數(shù)的接口應(yīng)該只有一個(gè)方法。如果為一個(gè)接口注解的方法指定了多個(gè)方法,我們會(huì)得到一個(gè)編譯器異常無效的'@FunctionalInterface'注釋。

?

問題八:

Java 8中的可選項(xiàng)是什么?

Java 8引入了一個(gè)新的容器類java.util.Optional?。如果該值可用,它將包裝一個(gè)值。如果該值不可用,則應(yīng)返回空的可選項(xiàng)。因此它代表空值,缺失值。這個(gè)類有各種實(shí)用方法,如isPresent(),它可以幫助用戶避免使用空值檢查。由于不直接返回值,而是返回包裝器對象,所以用戶可以避免空指針異常。

總結(jié)

以上是生活随笔為你收集整理的Java8面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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