Java面試遇到的一些常見題

目錄

1.?Java語言有幾種基本類型,分別是什么?

整數類型(Integer Types):

浮點類型(Floating-Point Types):

字符類型(Character Type):

布爾類型(Boolean Type):

2.?int[]類型是不是基本類型?

3.?什么是128陷阱?什么是裝箱?什么是拆箱?為什么要有包裝類?

128 位整數陷阱(128-bit Integer Trap):

裝箱和拆箱(Boxing and Unboxing):

包裝類(Wrapper Classes):

為什么要有包裝類?:

4.?位運算有哪幾種?

按位與(&):

按位或(|):

按位異或(^):

取反(~):

左移(<<):

右移(>>):

無符號右移(>>>):

5.?“>>”和”>>>”的區別是什么?

>> 右移操作符:

>>> 無符號右移操作符:

6.?String類的常用函數有哪些?列舉十種。

length() 方法:

charAt(int index) 方法:

substring(int beginIndex) 和 substring(int beginIndex, int endIndex) 方法:

concat(String str) 方法:

indexOf(String str) 和 indexOf(String str, int fromIndex) 方法:

toUpperCase() 和 toLowerCase() 方法:

trim() 方法:

startsWith(String prefix) 和 endsWith(String suffix) 方法:

replace(char oldChar, char newChar) 和 replace(CharSequence target, CharSequence replacement) 方法:

split(String regex) 方法:

7.?String和StringBuffer,StringBuilder的區別有哪些?所有類名包含Buffer的類的內部實現原理是什么?有什么優勢?

String 類:

StringBuffer 類:

StringBuilder 類:

優勢:

8.?String字符串的不可變是指哪里不可變?

值不可變:

長度不可變:

????????不可變性的好處:

9.?字符串常量池是什么?不同的JDK版本都分別位于哪個區域?

10.?Java異常類有哪些?分別管理什么異常?

檢查異常(Checked Exception):

非檢查異常(Unchecked Exception):

我的其他博客


1.?Java語言有幾種基本類型,分別是什么?

在Java中,基本數據類型分為兩大類:原始數據類型(Primitive Data Types)和引用數據類型(Reference Data Types)。原始數據類型又分為四類:整數類型、浮點類型、字符類型和布爾類型。

  1. 整數類型(Integer Types):

    • byte:8位,有符號,范圍為-128到127。
    • short:16位,有符號,范圍為-32,768到32,767。
    • int:32位,有符號,范圍為-2^31到2^31-1。
    • long:64位,有符號,范圍為-2^63到2^63-1。
  2. 浮點類型(Floating-Point Types):

    • float:32位,單精度浮點數。
    • double:64位,雙精度浮點數。
  3. 字符類型(Character Type):

    • char:16位,無符號,表示Unicode字符。
  4. 布爾類型(Boolean Type):

    • boolean:表示邏輯值,只能取truefalse

這些基本數據類型是Java語言的基礎,用于存儲簡單的數據值。在Java中,對象都是引用數據類型,包括類、接口、數組等。這些基本數據類型具有不同的大小和范圍,根據需要選擇合適的類型來存儲數據。

2.?int[]類型是不是基本類型?

不是,int[] 不是基本數據類型,而是一種引用數據類型。在Java中,數組是一種引用數據類型,它可以包含基本數據類型的元素或其他引用類型的元素。int[] 表示一個整數類型的數組,其中的元素都是 int 類型。

基本數據類型是存儲簡單數值的類型,而引用數據類型是用來存儲對象引用的類型。基本數據類型直接包含數據值,而引用數據類型包含對存儲在內存中的對象的引用。

當你聲明一個 int[] 類型的數組時,實際上創建了一個對象,該對象存儲了一組整數,并且變量(數組名)存儲的是對該對象的引用。因此,int[] 是引用數據類型,而不是基本數據類型。

3.?什么是128陷阱?什么是裝箱?什么是拆箱?為什么要有包裝類?

128 位整數陷阱(128-bit Integer Trap):

Java 中的基本數據類型 long 是 64 位的,而在某些場景下需要表示更大的整數值,比如超過 Long.MAX_VALUE。在這種情況下,有時候會考慮使用 BigInteger 類,它可以表示任意大小的整數,但由于其靈活性和大數計算的特性,性能可能相對較低,而且在處理一些常規整數時不如基本數據類型高效。

裝箱和拆箱(Boxing and Unboxing):

  • 裝箱: 將基本數據類型轉換為對應的包裝類對象。例如,將 int 裝箱為 Integer
  • 拆箱: 將包裝類對象轉換為對應的基本數據類型。例如,將 Integer 拆箱為 int
// 裝箱
int primitiveInt = 42;
Integer boxedInt = Integer.valueOf(primitiveInt);// 拆箱
int unboxedInt = boxedInt.intValue();
  1. 包裝類(Wrapper Classes):

  2. Java 提供了一組包裝類,用于將基本數據類型轉換為對象,以便在需要對象的上下文中使用。以下是常見的包裝類:

    • Boolean:對應基本數據類型 boolean
    • Byte:對應 byte
    • Short:對應 short
    • Integer:對應 int
    • Long:對應 long
    • Float:對應 float
    • Double:對應 double
    • Character:對應 char

    通過使用包裝類,可以在需要對象的情況下使用基本數據類型,也可以在集合類中存儲基本數據類型,因為集合類通常只能存儲對象。

  3. 為什么要有包裝類?:

    • 對象化: 在需要對象而基本數據類型不夠時,可以使用包裝類將其轉化為對象。
    • 集合框架: 集合類(如 ListSetMap 等)只能存儲對象,因此需要包裝類來存儲基本數據類型的值。
    • 泛型: 泛型也要求使用對象,而不是基本數據類型。

    包裝類提供了一種將基本數據類型轉換為對象的方式,使得在某些情況下,可以方便地在面向對象的環境中使用基本數據類型。同時,自動裝箱和拆箱的特性使得在基本數據類型和其對應的包裝類之間進行轉換更加方便。

?

?

4.?位運算有哪幾種?

位運算是一種對二進制位進行操作的運算,Java 提供了幾種常見的位運算操作符:

  1. 按位與(&):

    • 兩個相應的位都為1時,結果為1;否則,結果為0。
  2. 按位或(|):

    • 兩個相應的位只要有一個為1,結果就為1;否則,結果為0。
  3. 按位異或(^):

    • 兩個相應的位不同,結果為1;相同,結果為0。
  4. 取反(~):

    • 每個位上的0變成1,1變成0。
  5. 左移(<<):

    • 將操作數的所有位向左移動指定的次數,右側空出的位用0填充。
  6. 右移(>>):

    • 將操作數的所有位向右移動指定的次數,左側空出的位根據符號位(正數補0,負數補1)或者補0進行填充。
  7. 無符號右移(>>>):

    • 將操作數的所有位向右移動指定的次數,左側空出的位總是用0填充。

這些位運算操作符可以用于執行一些底層的位級操作,如掩碼、權限控制、壓縮存儲等。在一些特定的場景中,位運算可以提高程序的執行效率。

5.?“>>”和”>>>”的區別是什么?

>>>>> 都是右移操作符,但它們在處理帶符號整數和無符號整數時有一些區別。

  1. >> 右移操作符:

    int x = -8;
    System.out.println(x >> 1);  // 結果為 -4
    
    • 對于正數,>>>>> 的效果相同,都是將所有位右移,左側空出的位用0填充。
    • 對于負數,>> 采用“算術右移”,即將所有位右移,左側空出的位用符號位填充(即保持符號位不變)。

>>> 無符號右移操作符:

>>> 無符號右移操作符:無論正數還是負數,>>> 都是采用“邏輯右移”,即將所有位右移,左側空出的位總是用0填充。
  • 無論正數還是負數,>>> 都是采用“邏輯右移”,即將所有位右移,左側空出的位總是用0填充。

6.?String類的常用函數有哪些?列舉十種。

String 類是 Java 中用來表示字符串的類,它提供了許多常用的方法來操作字符串。以下是 String 類的一些常用方法,其中列舉了十種:

length() 方法:

  • 返回字符串的長度,即包含的字符數。

charAt(int index) 方法:

  • 返回字符串中指定索引位置的字符。

substring(int beginIndex)substring(int beginIndex, int endIndex) 方法:

  • substring(int beginIndex) 返回從指定索引開始到字符串末尾的子字符串。
  • substring(int beginIndex, int endIndex) 返回從指定索引開始到指定索引結束之前的子字符串。

concat(String str) 方法:

  • 將指定字符串連接到該字符串的末尾。

indexOf(String str)indexOf(String str, int fromIndex) 方法:

  • indexOf(String str) 返回指定子字符串在該字符串中第一次出現的索引。
  • indexOf(String str, int fromIndex) 從指定的索引位置開始,返回指定子字符串在該字符串中第一次出現的索引

toUpperCase()toLowerCase() 方法:

  • toUpperCase() 將字符串中的所有字符轉換為大寫。
  • toLowerCase() 將字符串中的所有字符轉換為小寫。

trim() 方法:

  • 返回一個字符串,刪除了原字符串開頭和末尾的所有空格。

startsWith(String prefix)endsWith(String suffix) 方法:

  • startsWith(String prefix) 判斷字符串是否以指定的前綴開始。
  • endsWith(String suffix) 判斷字符串是否以指定的后綴結束。

replace(char oldChar, char newChar)replace(CharSequence target, CharSequence replacement) 方法:

  • replace(char oldChar, char newChar) 替換字符串中的所有指定字符。
  • replace(CharSequence target, CharSequence replacement) 替換字符串中的所有指定字符序列。

split(String regex) 方法:

  • 使用給定的正則表達式拆分字符串,返回一個字符串數組。

7.?String和StringBuffer,StringBuilder的區別有哪些?所有類名包含Buffer的類的內部實現原理是什么?有什么優勢?

StringStringBufferStringBuilder 是 Java 中用于處理字符串的三個主要類,它們有一些關鍵的區別,主要體現在可變性、線程安全性和性能上。

String 類:

在選擇使用 StringStringBufferStringBuilder 時,需要根據具體的需求來決定。如果在多線程環境下,需要線程安全性,則選擇 StringBuffer;如果在單線程環境下,并且不需要線程安全性,則選擇 StringBuilder,由于 StringBuilder 不進行同步,因此性能更好。如果字符串是常量,不需要修改,則選擇 String

  • 不可變性: 字符串是不可變的,一旦創建,內容無法修改。
  • 線程安全: 由于字符串是不可變的,所以是線程安全的。
  • 性能: 由于不可變性,每次對字符串進行修改都會創建一個新的字符串對象,可能導致性能開銷。

    StringBuffer 類:

  • 可變性: 字符串緩沖區,可以修改其中的內容。
  • 線程安全: StringBuffer 是線程安全的,各個方法都進行了同步處理。
  • 性能: 在多線程環境下使用時,相對于 StringBuilder,由于同步處理,性能稍遜一籌。

    StringBuilder 類:

  • 可變性: 字符串生成器,可以修改其中的內容。
  • 線程安全: StringBuilder 是非線程安全的,不進行同步處理。
  • 性能: 在單線程環境下,由于不進行同步處理,性能較好。

    關于所有類名包含 "Buffer" 的類的內部實現原理,通常這些類都是基于緩沖區(Buffer)實現的。緩沖區是一塊臨時存儲區域,用于臨時保存數據,提高讀寫的效率。這些類通常使用數組作為底層數據結構,通過對數組的操作來實現對字符串的修改。緩沖區的使用可以避免頻繁的對象創建和銷毀,從而提高字符串操作的效率。

    優勢:

  • 性能: StringBufferStringBuilder 通過使用可變的緩沖區,避免了頻繁的對象創建和銷毀,提高了字符串操作的性能。
  • 靈活性: 可以方便地對字符串進行修改,而不需要創建新的字符串對象。

8.?String字符串的不可變是指哪里不可變?

字符串的不可變性是指在創建之后,字符串對象的內容不可被修改。具體來說,不可變性表現在以下幾個方面:

值不可變:

一旦字符串對象被創建,其中的字符序列不可更改。

長度不可變:

字符串的長度在創建后也是不可變的。無法通過直接修改字符串對象來改變其長度。

????????不可變性的好處:

  • 線程安全性: 由于字符串是不可變的,多個線程可以安全地共享字符串對象,而無需擔心修改沖突。

  • 安全性: 字符串不可變性提供了一定的安全性,因為它們無法在創建后被意外地修改。

  • 緩存: 由于字符串的不可變性,可以進行一些優化,例如字符串常量池的使用,以及緩存哈希碼等。

?

9.?字符串常量池是什么?不同的JDK版本都分別位于哪個區域?

字符串常量池(String Constant Pool)是 Java 中用于存儲字符串常量的一個特殊的內存區域。字符串常量池的目的是提高字符串的重用性,減少內存的占用。

在 Java 中,字符串常量池位于方法區(Method Area),這是一種線程共享的內存區域,存儲了類的結構信息、靜態變量、常量池等數據。

不同的 JDK 版本中,字符串常量池的具體位置可能有所變化:

  1. JDK 6 及之前:

    • 字符串常量池位于永久代(Permanent Generation)中。
  2. JDK 7 和 JDK 8:

    • JDK 7 中還是位于永久代。
    • JDK 8 引入了元空間(Metaspace),替代了永久代。字符串常量池被移至堆中,與堆共享內存。
  3. JDK 9 及之后:

    • JDK 9 進一步改進了內存模型,移除了永久代,完全采用元空間,字符串常量池仍然位于堆中。

在 JDK 7 和 JDK 8 中,字符串常量池的移動到堆中的改變,是為了解決永久代內存泄漏的問題。元空間的引入進一步改善了類的元信息存儲機制,避免了永久代的一些限制和問題。

請注意,由于不同的 JDK 實現和配置可能有所不同,具體的內存區域分配情況可能會有一些變化。上述描述主要是針對 Oracle JDK 和 OpenJDK 的情況。

10.?Java異常類有哪些?分別管理什么異常?

Java 中的異常分為兩大類:檢查異常(Checked Exception)和非檢查異常(Unchecked Exception)。

檢查異常(Checked Exception):

  1. IOException:

    • 用于處理輸入輸出操作中可能發生的異常,如文件讀寫等。
  2. FileNotFoundException:

    • 繼承自 IOException,表示嘗試打開一個不存在的文件時拋出的異常。
  3. ParseException:

    • 通常用于處理字符串解析為日期等格式時可能發生的異常。
  4. SQLException:

    • 用于處理與數據庫相關的異常。
  5. ClassNotFoundException:

    • 在使用 Class 類的 forName 方法時,如果指定的類不存在,會拋出此異常。

非檢查異常(Unchecked Exception):

  1. RuntimeException:

    • 這是一個非常常見的非檢查異常的父類,包括以下幾種:
      • ArithmeticException: 用于處理算術運算中可能發生的異常,如除以零。
      • NullPointerException: 表示對一個對象調用方法、訪問字段或數組元素時,對象引用為 null。
      • ArrayIndexOutOfBoundsException: 表示數組下標越界。
      • IndexOutOfBoundsException: 表示索引越界,通常由于集合操作中的錯誤使用引起。
      • IllegalArgumentException: 表示傳遞給方法的參數值不合法。
      • IllegalStateException: 表示對象的狀態不合法。
      • NumberFormatException: 表示字符串轉換為數字時的格式錯誤。
      • ConcurrentModificationException: 在使用迭代器遍歷集合的過程中,如果集合的結構發生變化,會拋出此異常。
  2. NullPointerException:

    • 雖然 NullPointerException 屬于 RuntimeException 的子類,但由于其普遍性,特別列出。
    • 表示對一個對象調用方法、訪問字段或數組元素時,對象引用為 null。
  3. ArrayIndexOutOfBoundsException:

    • 同樣屬于 RuntimeException 的子類,表示數組下標越界。

這些異常類用于處理在程序運行期間可能出現的各種錯誤狀況。檢查異常在編譯期強制處理,程序員必須捕獲或聲明拋出,而非檢查異常通常是運行時異常,程序員可以選擇捕獲和處理,也可以不處理。

我的其他博客

簡單介紹一些其他的樹-CSDN博客

認識二叉樹(詳細介紹)-CSDN博客

正則表達式詳細講解-CSDN博客

低代碼開發:創新之道還是軟件開發的捷徑?-CSDN博客

HTTP與HTTTPS的區別-CSDN博客

什么情況下會產生StackOverflowError(棧溢出)和OutOfMemoryError(堆溢出)怎么排查-CSDN博客

在多線程中sleep()和wait()的區別(詳細)-CSDN博客

談談我對HashMap擴容機制的理解及底層實現-CSDN博客

堆排序詳細講解(一文足矣JAVA)-CSDN博客

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

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

相關文章

(六)五種最新算法(SWO、COA、LSO、GRO、LO)求解無人機路徑規劃MATLAB

一、五種算法&#xff08;SWO、COA、LSO、GRO、LO&#xff09;簡介 1、蜘蛛蜂優化算法SWO 蜘蛛蜂優化算法&#xff08;Spider wasp optimizer&#xff0c;SWO&#xff09;由Mohamed Abdel-Basset等人于2023年提出&#xff0c;該算法模型雌性蜘蛛蜂的狩獵、筑巢和交配行為&…

【完整項目】雙模式答題卡識別軟件中YOLO模式的訓練部分詳解,包括訓練填涂區域和手寫準考證號,手把手詳細教學,可延申拓展訓練其他圖像數據

目錄 前言1. 數據準備2. 數據標注3. 先跑起來Windows下用本地的CPU或GPU訓練本地Windows系統連接服務器訓練前言 前文:【完整項目】基于Python+Tkinter+OpenCV+Yolo+手寫OCR的雙模式答題卡識別軟件的設計與實現 如果你需要訓練自己的答題卡模型,那么請先看上面的文章鏈接。…

Flutter自定義下拉選擇框dropDownMenu

利用PopupMenuButton和PopupMenuItem寫了個下拉選擇框&#xff0c;之所以不采用系統的&#xff0c;是因為自定義的更能適配項目需求&#xff0c;話不多說&#xff0c;直接看效果 下面直接貼出代碼、代碼中注釋寫的都很清楚&#xff0c;使用起來應該很方便&#xff0c;如果有任何…

C : DS靜態查找之順序索引查找

Description 給出一個隊列和要查找的數值&#xff0c;找出數值在隊列中的位置&#xff0c;隊列位置從1開始 要求使用順序索引查找算法&#xff0c;其中索引表查找和塊內查找都采用不帶哨兵、從頭開始的順序查找方法。 Input 第一行輸入n&#xff0c;表示主表有n個數據 第二…

OpenSSL 編程指南

目錄 前言初始化SSL庫創建SSL 上下文接口(SSL_CTX)安裝證書和私鑰加載證書(客戶端/服務端證書)加載私鑰/公鑰加載CA證書設置對端證書驗證例1 SSL服務端安裝證書例2 客戶端安裝證書創建和安裝SSL結構建立TCP/IP連接客戶端創建socket服務端創建連接創建SSL結構中的BIOSSL握手服務…

Scrum

Scrum是一個用于開發和維持復雜產品的框架&#xff0c;是一個增量的、迭代的開發過程。在這個框架中&#xff0c;整個開發過程由若干個短的迭代周期組成&#xff0c;一個短的迭代周期稱為一個Sprint&#xff0c;每個Sprint的建議長度是2到4周(互聯網產品研發可以使用1周的Sprin…

【Linux】輸出緩沖區和fflush刷新緩沖區

目錄 一、輸出緩沖區 1.1 輸出緩沖區的使用 1.2 緩沖區的刷新 1.3 輸出緩沖區的作用 二、回車換行 一、輸出緩沖區 C/C語言&#xff0c;當調用輸出函數&#xff08;如printf()、puts()、fwrite()等&#xff09;時&#xff0c;會給我們提供默認的緩沖區。這些數據先存…

虛擬機安裝 hyper—v 沙盒

一、下載系統鏡像 1、確認電腦內存在8G及以上并提前準備完整的系統鏡像 安裝Hyper-V并重啟電腦后打開程序選擇虛擬機 選擇安裝位置并設置保留第一代的虛擬參數即可開始分配內存&#xff0c;根據自己的需求進行設置 右鍵虛擬機啟動并開始運行&#xff0c;進行鏡像系統的安裝便完…

【Flutter】創建應用頂級組件,應用根組件 (學習記錄)

前言 在 Flutter 中&#xff0c;應用的頂級組件或根組件通常是在 main() 函數中通過 runApp() 方法創建的。這個組件通常是一個 MaterialApp、CupertinoApp、GetMaterialApp 或其他類似的應用框架組件。 以下是一個創建 MaterialApp 作為根組件的示例&#xff1a; void main()…

牛客算法心得——環形數組的連續子數組最大和(dp)

大家好&#xff0c;我是晴天學長&#xff0c; 一個找連續子數組最大和的變形題&#xff0c;需要的小伙伴可以關注支持一下哦&#xff01;后續會繼續更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .環形數組的連續子數組的最大和 描述 給定一個長度為 nn 的環形整數數組&…

『 MySQL數據庫 』聚合統計

文章目錄 前言 &#x1f951;&#x1f95d; 聚合函數&#x1f353; COUNT( ) 查詢數據數量&#x1f353; SUM( ) 查詢數據總和&#x1f353; AVG( ) 查詢數據平均值&#x1f353; MAX( ) 查詢數據最大值&#x1f353; MIN( ) 查詢數據最小值 &#x1f95d; 數據分組GROUP BY子句…

湖科大計網:計算機網絡概述

一、計算機網絡的性能指標 一、速率 有時候數據量也認為是以10為底的&#xff0c;看怎么好算。&#xff08;具體吉大考試用什么待商榷&#xff09; 二、帶寬 在模擬信號系統中帶寬的含義&#xff0c;本課程中用到的地方是&#xff1a;香農定理和奈奎斯特定理公式的應用之中。 …

全面高壓化與全面超快充,破解新能源汽車的時代難題

是什么讓新能源車主感到疲憊與焦慮&#xff1f;是什么阻擋更多消費者選擇新能源汽車&#xff1f;我們在身邊進行一個簡單的調查就會發現&#xff0c;問題的答案非常一致&#xff1a;充電。 充電難&#xff0c;充電慢的難題&#xff0c;始終是困擾新能源汽車產業發展&#xff0c…

vue,uniapp的pdf等文件在線預覽

vue&#xff0c;uniapp文件在線預覽方案&#xff0c;用了個稍微偏門一點的方法實現了 通過后端生成文件查看頁面&#xff0c;然后前端只要展示這個網頁就行&#xff0c;uniapp就用web-view來展示&#xff0c;后臺系統就直接window.open()打開就行 示例查看PDF文件&#xff0c;…

每日一練【四數之和】

一、題目描述 18. 四數之和 給你一個由 n 個整數組成的數組 nums &#xff0c;和一個目標值 target 。請你找出并返回滿足下述全部條件且不重復的四元組 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若兩個四元組元素一一對應&#xff0c;則認為兩個四元組重復&#x…

基于ssm社區管理與服務的設計與實現論文

目錄 摘 要 1 Abstract 2 第一章 緒論 3 1.1研究背景 3 1.2 研究現狀 3 1.3 研究內容 4 第二章 系統關鍵技術 5 2.1 Java簡介 5 2.2 MySql數據庫 5 2.3 B/S結構 6 2.4 Tomcat服務器 6 第三章 系統分析 7 3.1可行性分析 7 3.1.1技術可行性 7 3.1.2經濟可行性 7 3.1.3運行可行性…

uniapp自定義的日歷(純手寫)

效果圖&#xff1a; html&#xff1a; <!-- 年月 --><view class"box"><view class"box_time"><view class"time"><image click"lefts" :src"url/uploads/20231206/9d1fb520b12383960dca3c214d84fa0…

vue獲取主機id和IP地址

獲取主機id和IP地址 在vue.config.js const os require(“os”); function getNetworkIp() { let needHost “”; // 打開的host try { // 獲得網絡接口列表 let network os.networkInterfaces(); for (let dev in network) { let iface network[dev]; for (let i 0; i …

LLM之Agent(五)| AgentTuning:清華大學與智譜AI提出AgentTuning提高大語言模型Agent能力

?論文地址&#xff1a;https://arxiv.org/pdf/2310.12823.pdf Github地址&#xff1a;https://github.com/THUDM/AgentTuning 在ChatGPT帶來了大模型的蓬勃發展&#xff0c;開源LLM層出不窮&#xff0c;雖然這些開源的LLM在各自任務中表現出色&#xff0c;但是在真實環境下作…

【Android】Glide的簡單使用(下)

文章目錄 緩存設置內存緩存硬盤緩存自定義磁盤緩存行為圖片請求優先級縮略圖旋轉圖片Glide的回調:TargetsBaseTargetTarget注意事項設置具體尺寸的Target 調試及Debug獲取異常信息 配置第三方網絡庫自定義緩存 緩存設置 GlideApp .with(context).load(gifUrl).asGif().error(…