容器(JAVA基礎)

一.泛型

在Java中,泛型(Generics)是JDK 5.0引入的一個新特性,它允許在定義類、接口和方法時使用類型參數(type parameters)。類型參數在使用前必須先被實際類型(如Integer、String等)替代,這個過程稱作類型實例化或類型擦除。泛型提供了編譯時類型安全,減少了運行時的類型轉換錯誤,并允許創建可重用的組件,這些組件能夠以一種類型無關的方式工作。

泛型的主要優點包括:

類型安全:通過泛型,編譯器能夠在編譯時捕獲許多類型錯誤,而不是等到運行時。

代碼重用:泛型允許我們編寫類型無關的代碼,提高了代碼的復用性。

簡化代碼:泛型減少了代碼中的類型轉換和裝箱/拆箱操作,使代碼更加簡潔。

在Java中,泛型可以應用于類、接口、方法和變量中。泛型類:

public class Box<T> {
    private T t;    public void set(T t) {
        this.t = t;
    }    public T get() {
        return t;
    }
}

泛型接口:

public interface Comparable<T> {
    int compareTo(T o);
}

泛型方法:

public class GenericsTest {
    public static <T> void printArray(T[] a) {
        for (T element : a) {
            System.out.println(element);
        }
    }
}

泛型變量:

List<String> myList = new ArrayList<String>();

在泛型中,類型參數(Type Parameters)是用尖括號<>包圍的,如Box<T>中的T。類型參數在使用泛型類或方法時,被實際類型(Actual Types)替代,如Box<String>中的String。

通配符泛型:

Java泛型還支持通配符類型參數(Wildcard Type Parameters),如?、? extends T和? super T。這些通配符允許更加靈活的泛型使用,尤其是在處理不確定類型或需要兼容多種類型的情況下。

類型擦除:

雖然Java泛型在編譯時提供了類型安全性,但在運行時,所有的泛型信息都會被擦除,替換為Object類型或者具體的類型。這個過程叫做類型擦除(Type Erasure)。類型擦除確保了與舊版Java代碼的兼容性,因為舊版Java并不支持泛型。

泛型是Java提高類型安全性和代碼復用性的一個重要特性,使得編寫更加健壯和靈活的代碼成為可能。

二.List

在Java中,List 是一個接口,它屬于 java.util 包。List 接口表示一個有序的集合(也稱為序列),它允許存儲重復的元素。List 接口提供了許多方法來操作列表中的元素,例如添加、刪除、查找等。

Java中有多種實現 List 接口的類,最常用的包括 ArrayList 和

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

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

相關文章

CSS~~

CSS是一門語言&#xff0c;用于控制網頁表現 CSS(Cascading Style Sheet):層疊樣式表 W3C標準:網頁主要由三部分組成 結構:HTML 表現: CSS 行為:JavaScript 1&#xff0c;CSS的導入方式 &#xff08;1&#xff09;內聯樣式 在標簽內部使用style屬性&#xff0c;屬性值是cs…

類 Unix 系統的文件目錄結構

以下是類 Unix 系統的文件目錄結構、各個目錄主要存放的文件以及縮寫的全稱的詳細說明&#xff1a; 根目錄 /&#xff1a; 全稱: Root Directory說明&#xff1a;根目錄是整個文件系統的起點&#xff0c;包含了所有其他目錄和文件。 /bin 目錄&#xff1a; 全稱: Binary說明&a…

Nginx最常用的指令

服務管理 sudo systemctl status nginx # nginx當前狀態 sudo systemctl reload nginx # 重新加載 nginx sudo systemctl restart nginx # 重啟nginxsudo nginx -t # 檢查語法 nginx # 啟動 nginx -s reload # 重啟 nginx -s stop # 關閉進程 nginx -s quit #…

Java學習筆記002——類的修飾符

在Java語言中&#xff0c;類的訪問修飾符決定了其它類能夠訪問該類的方式。類有如下4種訪問修飾符&#xff0c;在創建類時用于類的聲明&#xff1a; 1、public: 當一個類被聲明為public時&#xff0c;它可以從任何其他類中被訪問&#xff0c;無論這些類位于哪個包中。通常&am…

uniapp使用vue3語法構建自定義導航欄,適配小程序膠囊

具體代碼 <template><view class"nav-wrapper-container" :style"height:navBarHeight px"><view class"nav-status-container" :style"height:navstatusBarHeight px;" /><view v-if"isCustom" clas…

數字化轉型導師堅鵬:BLM證券公司數字化轉型戰略

BLM證券公司數字化轉型戰略 ——以BLM模型為核心&#xff0c;實現知行果合一 課程背景&#xff1a; 很多證券公司存在以下問題&#xff1a; 不知道如何系統地制定證券公司數字化轉型戰略&#xff1f; 不清楚其它證券公司數字化轉型戰略是如何制定的&#xff1f; 不知道…

Redis 淘汰策略、持久化、高可用

淘汰策略 只有 redis 內存空間已滿并且往里面寫新數據&#xff0c;才會觸發淘汰策略。通過 expire / / /pexpire 讓 key-value 過期&#xff0c;從而讓 redis 清除這個 key-value。value 的數據結構typedef struct redisObject {unsigned tpye:4;unsigned encoding:4;// 判斷哪…

個人數倉開發面試題記錄

一.廣州電商公司 1.簡單自我介紹 2.介紹下之前的公司離線數倉項目 3.mysql和hive區別&#xff1f; 4.sql的執行順序&#xff1f; 5.hive的優化 6.說下你之前公司來&#xff0c;你的技能層次在每個公司&#xff1f;你怎么評價你的技能&#xff1f; 7.你的之前業務主要是做什么&…

Linux基礎命令[10]-cmp

文章目錄 1. cmp 命令說明2. cmp 命令語法3. cmp 命令示例3.1 不加參數3.2 -b&#xff08;顯示不同的字節&#xff09;3.3 -i&#xff08;跳過字節&#xff09;3.4 -l&#xff08;顯示所有不同&#xff09;3.5 -n&#xff08;比較n個字節&#xff09;3.6 -s&#xff08;不顯示信…

el-select 不能重復選擇

el-select 不能重復選擇&#xff0c;注意&#xff1a;刪除后可以再次重新被選擇 <el-form-item><el-select v-model"attribute.attributeSelect" change"changeSelect()" placeholder"請選擇屬性分組" clearable><el-optionv-fo…

PostgreSQL restartpoint 原理詳解

背景 大部分人對 PG 的 checkpoint 機制會熟悉一點&#xff0c;但是對 restartpoint 卻不太熟悉&#xff0c;網上介紹這方面的文章也比較少。因此&#xff0c;本文將以 PG 14.7 的社區代碼為基礎&#xff0c;介紹 PG 中的 restartpoint 機制。 原理介紹 什么是 restartpoint…

華為OD技術面試案例1-2024年

背景&#xff1a; 學校背景&#xff1a;211本科工作經驗&#xff1a;1年半轉行目標&#xff1a;測試崗位 一、機考 &#xff08;得分&#xff1a;350&#xff09; 二、01.04 hr面 自我介紹選擇東莞的原因對OD&#xff08;華為研發崗位&#xff09;的看法家庭情況簡歷相關問…

信息論筆記:信息量+熵+相對熵+交叉熵+損失函數

信息論 信息量 I(x) -log( P )I為信息量P為x發生的概率 熵 混亂程度的度量&#xff0c;不確定的局面表示很混亂系統里信息量的期望值H(x) -sum( P(i) * log( P(i) ) ) 相對熵(KL散度) 用于度量兩個概率分布間的差異性信息D_KL(S | O) sum( P_S(x) * log_2( 1 / P_O(x)…

Mysql學習之各種鎖

鎖 事務的隔離性由鎖來實現 MySQL并發事務訪問相同記錄 并發事務訪問相同記錄的情況大致可以分為3種&#xff1a; 讀-讀的情況 讀-讀情況&#xff0c;即并發事務相繼讀取相同的記錄。讀取操作本身不會對記錄由有任何的影響&#xff0c;并不會引起什么問題&#xff0c;所以允許…

簡要講解OV7725攝像頭

本文主要包含以下幾部分內容&#xff1a; 1. 通過OV7725分析模塊原理圖。 2. 講解部分寄存器的含義、RGB565格式圖像輸出時序、幀率計算。 3. 講解SCCB協議與I2C協議的區別。 1、OV7725功能 OV7725是一款1/4英寸單芯片圖像傳感器&#xff0c;其感光陣列達到640*480&#xff0c…

LibreOJ 137. 最小瓶頸路(加強版) 題解 Kruscal重構樹 ST表

聲明&#xff1a;本題目是LibreOJ 136. 最小瓶頸路 題解 最小生成樹 倍增加強版&#xff0c;建議先學習簡單版的做法。 題目鏈接&#xff1a;LibreOJ 137. 最小瓶頸路&#xff08;加強版&#xff09; 題目描述&#xff1a; 給定一張無向圖&#xff0c;詢問兩個結點之間的最小瓶…

【MySQL 系列】在 Windows 上安裝 MySQL

在 Windows 平臺上安裝 MySQL 很簡單&#xff0c;并不需要太復雜的步驟。按照本文的步驟操練起來就可以了。 文章目錄 1、下載 MySQL 安裝程序2、安裝 MySQL 數據庫2.1、選擇安裝類型2.2、檢查所需組件2.3、安裝所選產品組件2.4、產品配置2.5、配置高可用性2.6、配置服務器類型…

【leetcode】 劍指 Offer學習計劃(java版本含注釋)(下)

目錄 前言第十六天&#xff08;排序&#xff09;劍指 Offer 45. 把數組排成最小的數&#xff08;中等&#xff09;劍指 Offer 61. 撲克牌中的順子&#xff08;簡單&#xff09; 第十七天&#xff08;排序&#xff09;劍指 Offer 40. 最小的k個數&#xff08;簡單&#xff09; 第…

c++11多線程:call_once

文章目錄 call_once示例一示例二 call_once std::call_once是 C11 標準庫中的一個函數&#xff0c;用于確保某個函數只會被調用一次。 單例設計模式是一種常見的設計模式&#xff0c;用于確保某個類只能創建一個實例。由于單例實例是全局唯一的&#xff0c;因此在多線程環境中…

YOLO系列中的“data.yaml”詳解!

專欄介紹&#xff1a;YOLOv9改進系列 | 包含深度學習最新創新&#xff0c;主力高效漲點&#xff01;&#xff01;&#xff01; 一、data.yaml介紹 YOLO系列中的data.yaml文件包含了YOLO系列模型運行所需要的數據集路徑、數據集中的類別數及標簽。數據集路徑可以用絕對路徑也可以…