国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

階段性復習 迭代器, Lambda表達式, 泛型, 單例模式

這篇具有很好參考價值的文章主要介紹了階段性復習 迭代器, Lambda表達式, 泛型, 單例模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?? ?迭代器(Iterator)是一種設計模式,用于順序訪問集合中的元素,而不需要了解集合內(nèi)部的結構。
?? ?迭代器模式將元素的遍歷行為和集合類解耦,使得可以在不修改集合類的情況下遍歷集合。

?? ?具體來說,一個迭代器對象包含了遍歷集合所需的狀態(tài)信息,如當前遍歷的元素位置等。
?? ?迭代器提供了一些方法,如 next() 方法,用于返回當前元素并移動到下一個元素。
?? ?通過這些方法,遍歷者可以順序訪問集合中的元素,而不需知道如何訪問集合內(nèi)部的數(shù)據(jù)結構。

?? ?在Java中,標準庫中提供了迭代器接口(java.util.Iterator),可以在遍歷集合時使用。
?? ?通常使用 for-each 循環(huán)來遍歷集合,實際上 for-each 循環(huán)內(nèi)部就是通過迭代器來遍歷集合的。
?? ?除了 Iterator 接口外,還有 ListIterator 接口、Enumeration 接口等,都可以用于遍歷不同類型的集合。


?? ?
?? ?
?? ?Lambda 表達式,簡稱 Lambda,是 Java 8 中引入的一種新的函數(shù)式編程特性。
?? ?它允許以更簡潔、更直觀的方式定義一個函數(shù),即可以將一個函數(shù)作為參數(shù)傳遞給另一個函數(shù),也可以直接返回一個函數(shù)。

?? ?Lambda 表達式的語法形式為:(arguments) -> expression 或 (arguments) -> { statements; },
?? ?其中 arguments 是函數(shù)參數(shù)列表,expression 或 statements 是函數(shù)體。

?? ?Lambda 表達式的優(yōu)點如下:

?? ?1. 更加簡潔:和傳統(tǒng)的匿名內(nèi)部類相比,Lambda 表達式可以讓代碼更加簡潔,更容易理解。

?? ?2. 代碼更易讀:通過Lambda表達式,可以讓代碼更加直觀,更加易讀。

?? ?3. 更加靈活:Lambda表達式可以賦值給函數(shù)式接口類型,可以在很多地方使用,從而大大提高了編寫代碼的靈活性。

?? ?在實際使用中,Lambda 表達式通常應用于函數(shù)式接口、集合的遍歷、線程的創(chuàng)建等方面,這些場景都需要傳入一個函數(shù)作為參數(shù)。

?? ?
?? ?
?? ?

?? ?泛型(Generics)是在 Java 5 中引入的一種編程技術。它允許在定義類、
?? ?接口和方法時使用類型參數(shù)(Type Parameter),以便在代碼中增加類型安全性和靈活性。

?? ?使用泛型的好處有以下幾個方面:

?? ?1. 提高代碼的可讀性和可維護性:泛型使代碼更加清晰和易于理解,
?? ?同時也減少了類型轉(zhuǎn)換和錯誤的可能性,進而提高了代碼的可維護性。

?? ?2. 增強了代碼的重用性:泛型可以用于任何類型,從而提高了代碼的靈活性和重用性。

?? ?3. 類型安全:泛型在編譯時就能檢查類型錯誤,從而在運行時就能避免類型轉(zhuǎn)換的錯誤。

?? ?4. 減少代碼的冗余:泛型可以省去冗余的代碼,減少了代碼的量。

?? ?在 Java 中,泛型由尖括號里面的參數(shù)指定,它可以用于類、接口和方法之中。
?? ?類和接口的泛型參數(shù)可以用于定義實例變量、方法形式參數(shù)和方法返回類型等位置,
?? ?從而實現(xiàn)類型的約束和靈活性的提升。泛型還支持類型通配符、類型參數(shù)的約束等,這些技術都可以提高泛型編程的效率和適用性。
?? ??? ?
?? ?
?? ?
?? ?
?? ?
?? ?**餓漢式:**

```java
public class Singleton {

? ? // 將自身實例化對象設置為一個屬性,并用static、final修飾
? ? private static final Singleton instance = new Singleton();
? ??
? ? // 構造方法私有化
? ? private Singleton() {}
? ??
? ? // 靜態(tài)方法返回該實例
? ? public static Singleton getInstance() {
? ? ? ? return instance;
? ? }
}
```

“餓漢模式”的優(yōu)缺點:

優(yōu)點:實現(xiàn)起來簡單,沒有多線程同步問題。

缺點:當類SingletonTest被加載的時候,會初始化static的instance,靜態(tài)變量被創(chuàng)建并分配內(nèi)存空間,
從這以后,這個static的instance對象便一直占著這段內(nèi)存(即便你還沒有用到這個實例),當類被卸載時,
靜態(tài)變量被摧毀,并釋放所占有的內(nèi)存,因此在某些特定條件下會耗費內(nèi)存。

**懶漢式(延遲加載):**

延遲加載就是調(diào)用get()方法時實例才被創(chuàng)建(先不急著實例化出對象,等要用的時候才給你創(chuàng)建出來。
不著急,故又稱為“懶漢模式”),常見的實現(xiàn)方法就是在get方法中進行new實例化。

```java
public class Singleton {

? ? // 將自身實例化對象設置為一個屬性,并用static修飾
? ? private static Singleton instance;
? ??
? ? // 構造方法私有化
? ? private Singleton() {}
? ??
? ? // 靜態(tài)方法返回該實例
? ? public static Singleton getInstance() {
? ? ? ? if(instance == null) {
? ? ? ? ? ? instance = new Singleton();
? ? ? ? }
? ? ? ? return instance;
? ? }
}
```

“懶漢模式”的優(yōu)缺點:

優(yōu)點:實現(xiàn)起來比較簡單,當類SingletonTest被加載的時候,靜態(tài)變量static的instance沒有創(chuàng)建對象,
當getInstance方法第一次被調(diào)用時,才創(chuàng)建對象為其賦值,因此在某些特定條件下會節(jié)約了內(nèi)存。

缺點:在多線程環(huán)境中,這種實現(xiàn)方法是完全錯誤的,根本不能保證單例的狀態(tài)。

**線程安全的“懶漢模式”**

```java
public class Singleton {

? ? // 將自身實例化對象設置為一個屬性,并用static修飾
? ? private static Singleton instance;
? ??
? ? // 構造方法私有化
? ? private Singleton() {}
? ??
? ? // 靜態(tài)方法返回該實例,加synchronized關鍵字實現(xiàn)同步
? ? public static synchronized Singleton getInstance() {
? ? ? ? if(instance == null) {
? ? ? ? ? ? instance = new Singleton();
? ? ? ? }
? ? ? ? return instance;
? ? }
}
```

優(yōu)點:在多線程情形下,保證了“懶漢模式”的線程安全。

缺點:眾所周知在多線程情形下,synchronized方法通常效率低,顯然這不是最佳的實現(xiàn)方案。文章來源地址http://www.zghlxwxcb.cn/news/detail-502784.html

到了這里,關于階段性復習 迭代器, Lambda表達式, 泛型, 單例模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 單晶高溫合金收獲階段性應用成果,科研人員已開展定向凝固實驗

    單晶高溫合金收獲階段性應用成果,科研人員已開展定向凝固實驗

    根據(jù)央視報道,中國科學院金屬研究所的科研人員對從太空帶回的鋁硅合金樣品進行了初步的解剖分析工作,并計劃用不同的實驗方法和合金材料繼續(xù)開展相關實驗工作,以進一步探索重力在單晶高溫合金凝固過程中的具體作用及相關機理。 值得關注的是,單晶高溫合金作為

    2024年02月12日
    瀏覽(17)
  • Nautilus Chain測試網(wǎng)迎階段性里程碑,模塊化區(qū)塊鏈拉開新序幕

    Nautilus Chain測試網(wǎng)迎階段性里程碑,模塊化區(qū)塊鏈拉開新序幕

    Nautilus?Chain?是目前行業(yè)內(nèi)少有的真實實踐的?Layer3?模塊化鏈,該鏈曾在幾個月前上線了測試網(wǎng),并接受用戶測試交互。該鏈目前正處于測試網(wǎng)階段,并即將在不久上線主網(wǎng),這也將是行業(yè)內(nèi)首個正式上線的模塊化區(qū)塊鏈底層。 而在上個月,Nautilus?Chain?測試網(wǎng)迎來了階段性

    2024年02月09日
    瀏覽(22)
  • 【郭東白架構課 模塊二:創(chuàng)造價值】30|節(jié)點六:如何保障高質(zhì)量的階段性交付?

    你好,我是郭東白。從這節(jié)課開始,我們就進入到架構活動的第六個環(huán)節(jié)——階段性價值交付。 對于企業(yè)來說,這是成本花費最多的節(jié)點了,因為大量的研發(fā)人力資源開始投入到架構活動中去。 有的架構師認為,到了這個節(jié)點,自己似乎已經(jīng)完成了主要任務。接下來,就主

    2024年02月09日
    瀏覽(23)
  • 在 Web3 里如何尋找靠譜的創(chuàng)新路徑——Solv V3 階段性復盤(上)

    在 Web3 里如何尋找靠譜的創(chuàng)新路徑——Solv V3 階段性復盤(上)

    作者:Solv 核心團隊 Solv V3 是 3 月 21 日發(fā)布的,到這周一整整三個星期。三周時間產(chǎn)生的實際交易額超過 6,000 萬美元,預計在本月內(nèi)能夠破億。而且從我們手上的 pipeline 來看,這個增長的勢頭還將持續(xù)下去。在幾個月內(nèi),Solv V3 將產(chǎn)生數(shù)億美元的實際交易量。 在 crypto 市場上

    2024年02月07日
    瀏覽(31)
  • C++復習筆記--Lambda表達式

    ① [] 用于捕獲變量,一般用于使用和修改外部的變量,可以為空; ② (int a, int b) 表示參數(shù)列表,可以省略; ③ - int 定義返回類型,一般可以省略,讓編譯器自動推斷; ④ auto f 表示將定義的 lambda 表達式賦值給對象 f,auto 用于自動推斷類型; 基本用法如下: ① 使用和修

    2024年02月16日
    瀏覽(26)
  • C++day7(異常處理機制、Lambda表達式、類型轉(zhuǎn)換、STL標準庫模板、迭代器、list)
  • 【javaSE】 Lambda表達式與Lambda表達式的使用

    【javaSE】 Lambda表達式與Lambda表達式的使用

    Lambda表達式是Java SE 8中一個重要的新特性。lambda表達式允許你通過表達式來代替功能接口。 lambda表達式就和方法一樣,它提供了一個正常的參數(shù)列表和一個使用這些參數(shù)的主體(body,可以是一個表達式或一個代碼塊)。 Lambda 表達式(Lambda expression) ,基于數(shù)學中的λ演算得名,也

    2024年02月08日
    瀏覽(27)
  • 進階JAVA篇- Lambda 表達式與 Lambda 表達式的省略規(guī)則

    進階JAVA篇- Lambda 表達式與 Lambda 表達式的省略規(guī)則

    目錄 ? ? ? ? 1.0 什么是 Lambda 表達式? ? ? ? ? 1.1 既然跟匿名內(nèi)部類相關,先來回顧匿名內(nèi)部類。 ? ? ? ? ?1.2 Lambda 表達式與匿名內(nèi)部類之間的關系。 ? ? ? ? 1.3 函數(shù)式接口 ? ? ? ? 1.4 在具體代碼中來操作一下 ? ? ? ? 2.0?Lambda 表達式省略規(guī)則 ??????? ?Lambda 表達

    2024年02月08日
    瀏覽(29)
  • 探索Python中的函數(shù)式編程:Lambda表達式與函數(shù)式工具【第135篇—Lambda表達式】

    探索Python中的函數(shù)式編程:Lambda表達式與函數(shù)式工具【第135篇—Lambda表達式】

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網(wǎng)站,通俗易懂,風趣幽默,忍不住分享一下給大家?!军c擊進入巨牛的人工智能學習網(wǎng)站】。 在Python編程世界中,函數(shù)式編程逐漸成為了一種流行的范式,特別是在處理數(shù)據(jù)和編寫簡潔、高效代碼時。函數(shù)式編程的核心思想是將計算視

    2024年04月08日
    瀏覽(32)
  • 23.Lambda表達式

    23.Lambda表達式

    Lambda 表達式(lambda expression)是一個匿名函數(shù),Lambda表達式基于數(shù)學中的λ演算得名,直接對應于其中的lambda抽象(lambda abstraction),是一個匿名函數(shù),即沒有函數(shù)名的函數(shù)。Lambda表達式可以表示閉包(注意和數(shù)學傳統(tǒng)意義上的不同)。Lambda表達式是Java SE 8中一個重要的新特性。

    2024年02月03日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包