面試題總結一

第一天

1. 快速排序

public class QuickSort {public static void quickSort(int[] arr, int low, int high) {if (low < high) {// 分區操作,獲取基準元素的最終位置int pivotIndex = partition(arr, low, high);// 遞歸排序基準元素左邊的部分quickSort(arr, low, pivotIndex - 1);// 遞歸排序基準元素右邊的部分quickSort(arr, pivotIndex + 1, high);}}private static int partition(int[] arr, int low, int high) {// 選擇最后一個元素作為基準元素int pivot = arr[high];int i = low - 1;for (int j = low; j < high; j++) {if (arr[j] <= pivot) {i++;// 交換 arr[i] 和 arr[j]swap(arr, i, j);}}// 將基準元素放到正確的位置swap(arr, i + 1, high);return i + 1;}private static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}public static void main(String[] args) {int[] arr = {10, 7, 8, 9, 1, 5};int n = arr.length;System.out.println("排序前的數組:");for (int num : arr) {System.out.print(num + " ");}quickSort(arr, 0, n - 1);System.out.println("\n排序后的數組:");for (int num : arr) {System.out.print(num + " ");}}
}    

2. 插入排序

public static void insertionSort(int[] arr) {int n = arr.length;for (int i = 1; i < n; i++) {int key = arr[i];int j = i - 1;while (j >= 0 && arr[j] > key) {arr[j + 1] = arr[j];j--;}arr[j + 1] = key;}}

3. 解釋java三大特征

  • 封裝:指的是把對象的屬性和方法捆綁在一起,同時隱藏對象的內部實現細節,僅對外提供必要的訪問方式。這樣做可以增強數據的安全性,避免外部隨意修改對象內部數據。
  • 繼承:指一個類(子類)可以繼承另一個類(父類)的屬性和方法,從而實現代碼的復用和擴展。子類能夠擁有父類的所有非私有成員,還能添加自己的獨特屬性和方法。
  • 多態:意味著同一方法可以根據調用對象的不同類型表現出不同的行為。多態主要通過方法重寫和接口實現來達成(編譯時多態是在編譯階段就確定要調用的方法,它主要通過方法重載來實現。方法重載指的是在一個類中可以定義多個同名的方法,但這些方法的參數列表(參數的類型、個數或順序)不同;運行時多態是在運行階段才確定要調用的方法,它主要通過方法重寫和向上轉型來實現。方法重寫是指子類重寫父類的方法,向上轉型是指將子類對象賦值給父類引用。)

4. 反射機制

在 Java 中,反射機制允許程序在運行時動態地獲取類的信息,并且可以調用類的方法、訪問和修改類的屬性等。下面將詳細介紹 Java 反射機制的原理、關鍵類以及使用場景。
Java 反射機制的核心原理在于 Java 程序運行時,每個類都會在內存中生成一個 java.lang.Class 對象,該對象包含了這個類的完整結構信息,如類名、父類、接口、方法、字段等。通過這個 Class 對象,程序就能在運行時動態地獲取和操作類的各種信息。

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;// 定義一個示例類
class Person {private String name;public int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public void setName(String name) {this.name = name;}public String getName() {return name;}public void sayHello() {System.out.println("Hello, my name is " + name + ", I'm " + age + " years old.");}
}public class ReflectionExample {public static void main(String[] args) throws Exception {// 獲取 Person 類的 Class 對象Class<?> personClass = Person.class;// 創建 Person 類的實例Constructor<?> constructor = personClass.getConstructor(String.class, int.class);Person person = (Person) constructor.newInstance("Alice", 20);// 調用 Person 類的方法Method sayHelloMethod = personClass.getMethod("sayHello");sayHelloMethod.invoke(person);// 訪問和修改 Person 類的字段Field ageField = personClass.getField("age");ageField.set(person, 21);// 調用修改后的方法sayHelloMethod.invoke(person);}
}

5.深克隆和淺克隆

  • 淺克隆(Shallow Clone)
    定義:在淺克隆中,創建一個新對象,新對象的基本數據類型(如int、double等)會復制其值,而對于引用類型的成員變量,僅僅復制引用,即新對象和原對象的引用類型成員變量指向同一個內存地址。這意味著如果修改其中一個對象的引用類型成員變量所指向的對象內容,另一個對象也會受到影響。
  • 深克隆(Deep Clone)
    定義:深克隆會創建一個新對象,并且遞歸地復制原對象的所有成員變量,包括引用類型的成員變量。這意味著新對象和原對象的所有成員變量都有各自獨立的內存空間,修改其中一個對象的任何成員變量都不會影響另一個對象。

6. 數據庫和緩存如何保持一致性?

先更新數據庫,再刪除緩存(推薦)

此策略是先對數據庫中的數據進行更新,更新成功后,將緩存中的對應數據刪除。

  • 優點:
    數據一致性較高:在大多數情況下能保證數據的最終一致性。因為讀請求在緩存未命中時會從數據庫獲取最新數據并更新緩存。
    性能較好:相比于更新緩存,刪除緩存的操作更加輕量級。
  • 缺點:
    存在短暫不一致:在更新數據庫后、刪除緩存前,如果有讀請求進來,會讀取到舊的緩存數據。不過這種不一致的時間窗口通常較短。

保證一致性的額外措施

  1. 重試機制
    在使用 “先更新數據庫,再刪除緩存” 策略時,如果刪除緩存失敗,可以引入重試機制。可以將刪除緩存的操作記錄到消息隊列中,通過消息隊列的重試功能來保證緩存最終被刪除。
  2. 異步更新
    對于一些對實時性要求不是特別高的場景,可以采用異步更新的方式。例如在更新數據庫后,通過消息隊列異步地更新或刪除緩存,這樣可以減少對業務邏輯的影響,提高系統的吞吐量。
  3. 分布式鎖
    在高并發場景下,可以使用分布式鎖來保證同一時間只有一個線程進行數據庫和緩存的更新操作,避免并發問題導致的數據不一致。
  4. 緩存過期時間
    為緩存設置合理的過期時間,這樣即使出現短暫的數據不一致,在緩存過期后也能從數據庫獲取到最新數據并更新緩存,保證數據的最終一致性。

7.HashMap 底層原理

  1. 數據結構
    在 Java 中,HashMap 底層數據結構是數組 + 鏈表 + 紅黑樹(JDK 1.8 及以后)。
  2. 擴容機制
    HashMap 有一個負載因子(默認為 0.75),當鍵值對數量超過數組長度乘以負載因子時,會觸發擴容操作。擴容時,數組長度會變為原來的 2 倍,然后將原數組中的所有鍵值對重新計算哈希值并插入到新數組中。
  3. 線程安全
    HashMap 不是線程安全的。在多線程環境下,對 HashMap 進行并發操作可能會導致以下問題:
  • 數據不一致
    多個線程同時對 HashMap 進行插入、刪除或修改操作時,可能會出現數據覆蓋或丟失的情況。例如,線程 A 和線程 B 同時插入一個鍵值對,且它們計算得到的數組下標相同,可能會導致其中一個線程的插入操作被覆蓋。
  • 死循環(JDK 1.7)
    在 JDK 1.7 中,HashMap 在擴容時采用頭插法,當多個線程同時進行擴容操作時,可能會導致鏈表形成環形結構,從而引發死循環。
  • 解決方案
    如果需要在多線程環境下使用哈希表,可以考慮以下替代方案:
    ConcurrentHashMap:是線程安全的哈希表,它采用分段鎖(JDK 1.7)或 CAS + synchronized(JDK 1.8)的方式來保證線程安全,并發性能較高。
    Hashtable:也是線程安全的哈希表,但它使用 synchronized 關鍵字對整個方法進行同步,并發性能較低。

8. ConcurrentHashMap和hashtable和hashmap區別和作用

區別
  1. 線程安全性
    HashMap:它并非線程安全的類。在多線程環境下,如果多個線程同時對 HashMap 進行讀寫操作,可能會引發數據不一致、死循環(JDK 1.7)等問題。因此,HashMap 適用于單線程環境。
    Hashtable:是線程安全的類。它的方法都被 synchronized 關鍵字修飾,這意味著同一時間只能有一個線程訪問 Hashtable 的方法。這種實現方式雖然保證了線程安全,但在多線程高并發場景下,由于所有操作都需要獲取鎖,會導致性能嚴重下降。
    ConcurrentHashMap:同樣是線程安全的類,但它的并發性能要比 Hashtable 高很多。在 JDK 1.7 中,ConcurrentHashMap 使用分段鎖機制,將整個哈希表分成多個段(Segment),每個段都有自己的鎖,不同段之間的操作可以并發進行。在 JDK 1.8 中,ConcurrentHashMap 摒棄了分段鎖,采用 CAS(Compare-And-Swap)和 synchronized 來保證并發操作的線程安全,進一步提高了并發性能。
  2. 對 null 鍵和 null 值的支持
    HashMap:允許鍵和值為 null。也就是說,你可以向 HashMap 中插入一個鍵為 null 的鍵值對,也可以插入值為 null 的鍵值對。
    Hashtable:不允許鍵或值為 null。如果嘗試插入 null 鍵或 null 值,會拋出 NullPointerException。
    ConcurrentHashMap:和 Hashtable 一樣,不允許鍵或值為 null。這是因為 ConcurrentHashMap 主要用于多線程環境,null 值可能會導致歧義,例如在 get 方法返回 null 時,無法確定是鍵不存在還是值本身為 null。
  3. 性能
    HashMap:在單線程環境下,由于不需要考慮線程安全問題,HashMap 的性能是最高的。
    Hashtable:由于采用了全量同步機制,在多線程環境下,所有線程都需要競爭同一把鎖,性能較低,尤其是在高并發場景下,會成為系統的性能瓶頸。
    ConcurrentHashMap:在多線程環境下,通過分段鎖(JDK 1.7)或 CAS + synchronized(JDK 1.8)的方式,允許更多的線程同時進行讀寫操作,并發性能遠遠高于 Hashtable。
作用
  1. HashMap
    HashMap 適用于單線程環境,當你的應用程序不需要考慮線程安全問題,并且對性能有較高要求時,可以使用 HashMap。例如,在一個單線程的工具類中,需要存儲一些臨時數據,使用 HashMap 是一個不錯的選擇。
  2. Hashtable
    由于 Hashtable 的性能較低,現在已經很少被使用。但在一些對線程安全有要求,且并發程度不高的場景下,仍然可以考慮使用 Hashtable。不過,通常更推薦使用 ConcurrentHashMap 來替代 Hashtable。
  3. ConcurrentHashMap
    ConcurrentHashMap 主要用于多線程環境,特別是在高并發場景下。例如,在一個多線程的緩存系統中,多個線程可能會同時對緩存進行讀寫操作,使用 ConcurrentHashMap 可以保證線程安全,同時提供較高的并發性能。

9.分段鎖

  • 原理
    ConcurrentHashMap 在 JDK 1.7 里將整個哈希表劃分成多個相互獨立的段(Segment),每一個段本質上就是一個小的 HashTable,并且每個段都有屬于自己的鎖。不同的段能夠并發地進行操作,這樣在多線程環境下,不同線程可以同時訪問不同的段,進而提升了并發性能。

10.ThreadLocal

ThreadLocal 是 Java 里的一個類,它為每個使用該變量的線程都單獨創建一個獨立的副本,各個線程能夠獨立地改變自己的副本,而不會對其他線程的副本產生影響。

  • 原理
    ThreadLocal 的核心原理是借助每個線程內部的 ThreadLocalMap 來存儲數據。ThreadLocalMap 是 ThreadLocal 的一個靜態內部類,它以 ThreadLocal 對象作為鍵,以線程的變量副本作為值。當線程調用 ThreadLocal 的 set 方法時,實際上是把值存進了當前線程的 ThreadLocalMap 中;當調用 get 方法時,會從當前線程的 ThreadLocalMap 里獲取對應的值。
  • 使用場景
    線程安全:當某些對象不是線程安全的,但又希望在多線程環境下使用時,可以借助 ThreadLocal 為每個線程創建一個獨立的對象副本,以此保證線程安全。例如,SimpleDateFormat 不是線程安全的,使用 ThreadLocal 能為每個線程創建一個獨立的 SimpleDateFormat 實例。
    上下文管理:在一個線程的執行過程中,需要在不同的方法之間傳遞一些上下文信息,此時可以使用 ThreadLocal 來存儲這些信息,避免在方法參數中頻繁傳遞。例如,在一個 Web 應用中,可以使用 ThreadLocal 來存儲當前用戶的信息。
import java.text.SimpleDateFormat;
import java.util.Date;public class ThreadLocalExample {// 創建一個 ThreadLocal 對象,用于存儲 SimpleDateFormat 實例private static final ThreadLocal<SimpleDateFormat> dateFormatThreadLocal = new ThreadLocal<SimpleDateFormat>() {@Overrideprotected SimpleDateFormat initialValue() {return new SimpleDateFormat("yyyy-MM-dd");}};public static String formatDate(Date date) {// 從 ThreadLocal 中獲取當前線程的 SimpleDateFormat 實例SimpleDateFormat dateFormat = dateFormatThreadLocal.get();return dateFormat.format(date);}public static void main(String[] args) {// 創建一個日期對象Date date = new Date();// 創建兩個線程,分別格式化日期Thread thread1 = new Thread(() -> {String formattedDate = formatDate(date);System.out.println("線程 1 格式化的日期: " + formattedDate);});Thread thread2 = new Thread(() -> {String formattedDate = formatDate(date);System.out.println("線程 2 格式化的日期: " + formattedDate);});// 啟動線程thread1.start();thread2.start();try {// 等待線程執行完畢thread1.join();thread2.join();} catch (InterruptedException e) {e.printStackTrace();}// 移除當前線程的 ThreadLocal 變量dateFormatThreadLocal.remove();}
}

11.索引

索引是一種數據結構,用于提高數據庫表中數據的查詢效率。它就像一本書的目錄,能夠幫助數據庫快速定位到所需的數據行,而不必全表掃描。

  • 常見類型
    B-tree 索引:最常見的索引類型,適用于全值匹配、范圍查詢、前綴匹配等多種查詢場景。
    哈希索引:基于哈希表實現,只能用于精確匹配,查詢速度非常快,但不支持范圍查詢。
    全文索引:用于在文本類型的列中進行全文搜索,能夠快速找到包含特定關鍵詞的記錄。
  • 使用場景和優化
    經常用于查詢條件、連接條件的列上適合創建索引。
    索引并非越多越好,過多的索引會增加數據插入、更新和刪除的成本,因為每次數據變更都需要同時更新索引。

12.事務

事務是一組數據庫操作,這些操作要么全部成功執行,要么全部不執行,是一個不可分割的工作單元,以保證數據庫的一致性。

  1. 特性(ACID)
  • 原子性(Atomicity):事務中的所有操作要么全部完成,要么全部不執行,不會出現部分執行的情況。
  • 一致性(Consistency):事務執行前后,數據庫的完整性約束沒有被破壞,數據從一個一致狀態轉換到另一個一致狀態。
  • 隔離性(Isolation):多個事務并發執行時,相互之間不會干擾,就像每個事務都是獨立執行一樣。
  • 持久性(Durability):事務一旦提交,其對數據庫的修改就會永久保存,即使數據庫發生故障也不會丟失。

13.并發問題及隔離級別

  • 臟讀:一個事務讀取了另一個未提交事務修改的數據。
  • 不可重復讀:在同一個事務中,多次讀取同一數據時,由于其他事務對該數據進行了修改并提交,導致每次讀取的結果不一致。
  • 幻讀:在一個事務中,按照某個條件查詢數據時,由于其他事務插入或刪除了符合該條件的數據,導致前后兩次查詢的結果集不一致。
  • 隔離級別:包括讀未提交(Read Uncommitted)、讀已提交(Read Committed)、可重復讀(Repeatable Read)和串行化(Serializable)。MySQL 的默認隔離級別是可重復讀,通過 MVCC(多版本并發控制)來解決并發問題,避免臟讀、不可重復讀和部分幻讀情況的發生。

14.MVCC(多版本并發控制)

MVCC 是 MySQL 在可重復讀隔離級別下實現高并發的關鍵技術。它通過在每行數據后面保存兩個隱藏的列來實現,一個是創建版本號,一個是刪除版本號。
當事務讀取數據時,會根據事務的版本號和數據的版本號來判斷數據是否可見,從而實現了不同事務之間的并發訪問控制,避免了數據的沖突和不一致。

15.三個日志

  1. redo log(重做日志)
    用于記錄數據庫的物理修改,即數據頁的修改記錄。當數據庫發生故障時,通過 redo log 可以將數據庫恢復到故障前的狀態,保證事務的持久性。
    它是順序寫入的,寫入性能很高,并且在事務提交時,會將 redo log buffer 中的數據刷新到磁盤上的 redo log 文件中。
  2. undo log(回滾日志)
    主要用于事務回滾和 MVCC。在事務執行過程中,如果需要回滾,就可以根據 undo log 中的記錄來撤銷對數據的修改。
    同時,undo log 也為 MVCC 提供了數據的歷史版本信息,使得在不同事務中可以看到數據的不同版本。
  3. bin log(二進制日志)
    記錄了數據庫的所有更新操作,包括數據的插入、更新、刪除等,不包含查詢語句。它主要用于數據庫的備份、恢復以及主從復制。
    前的狀態,保證事務的持久性。
    它是順序寫入的,寫入性能很高,并且在事務提交時,會將 redo log buffer 中的數據刷新到磁盤上的 redo log 文件中。
  4. undo log(回滾日志)
    主要用于事務回滾和 MVCC。在事務執行過程中,如果需要回滾,就可以根據 undo log 中的記錄來撤銷對數據的修改。
    同時,undo log 也為 MVCC 提供了數據的歷史版本信息,使得在不同事務中可以看到數據的不同版本。
  5. bin log(二進制日志)
    記錄了數據庫的所有更新操作,包括數據的插入、更新、刪除等,不包含查詢語句。它主要用于數據庫的備份、恢復以及主從復制。
    在主從復制中,主庫將 bin log 中的日志發送給從庫,從庫根據這些日志來重新執行相應的操作,從而實現主從庫的數據一致性。

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

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

相關文章

Stable Diffusion底模對應的VAE推薦

以下是主流Stable Diffusion底模對應的VAE推薦表格&#xff1a; 底模版本推薦VAE類型說明SD1.5SD1.5專用VAE通常使用vae-ft-mse-840000-ema-pruned.safetensorsSD2.0SD1.5兼容VAE或SD2專用VAE部分SD2模型需配套512-ema-only.vae.ptSD3內置VAESD3系列模型通常自帶集成VAE無需額…

北斗導航 | 基于matlab的多波束技術的衛星通信系統性能仿真

基于多波束技術的低軌(LEO)衛星通信系統 **1. 仿真場景建模**1.1 LEO衛星軌道參數設置1.2 地面終端分布**2. 多波束天線模型**2.1 波束方向圖生成2.2 頻率復用方案**3. 鏈路預算與干擾分析**3.1 自由空間路徑損耗3.2 信噪比(SNR)計算**4. 動態資源調度算法**4.1 基于流量需…

uni-app學習筆記十--vu3 computed的運用(一)

vue官方推薦使用計算屬性來描述依賴響應式狀態的復雜邏輯&#xff0c;computed具有緩存的作用&#xff0c;一個計算屬性僅會在其響應式依賴更新時才重新計算&#xff0c;這意味著只要 相關值 不改變&#xff0c;無論多少次訪問 都會立即返回先前的計算結果&#xff0c;從而在一…

多模態大模型詳解

首先&#xff0c;得明確多模態大模型的定義和核心能力&#xff0c;比如處理文本、圖像、音頻、視頻等多種數據模態。 其次是技術架構&#xff0c;可能需要分模塊描述&#xff0c;比如感知層、特征提取、融合策略等&#xff0c;還有技術趨勢如模型輕量化、開源生態。 應用場景…

如何通過UI設計提高用戶留存率?

在競爭激烈的移動應用市場中&#xff0c;提高用戶留存率是開發者的關鍵目標。UI 設計在實現這一目標中起著舉足輕重的作用。精心設計的 UI 不僅能夠吸引新用戶&#xff0c;還能促使現有用戶持續使用。以下是通過 UI 設計提升用戶留存率的幾種關鍵方法。 優化用戶體驗 用戶體驗…

Linux(6)——第一個小程序(進度條)

目錄 一、行緩沖區的概念 二、\r與\n 三、進度條代碼書寫與展示 1.如何表示進度條是在加載的 2.整體框架 3.書寫 3.1makefile: 3.2process.h: 3.3process.c: 3.4main.c&#xff1a; 3.5美化 一、行緩沖區的概念 首先&#xff0c;我們來見一見行緩沖區&#xff0c;…

51頁 @《人工智能生命體 新啟點》中國龍 原創連載

《 人工智能生命體 新啟點 》一書&#xff0c;以建立意識來建立起生命體&#xff0c;讓其成為獨立、自主的活動個體&#xff1b;也就可以理解為建立生命體的思想指導。 讓我們能夠賦予他靈魂&#xff01;

微軟全新開源命令行文本編輯器:Edit — 致敬經典,擁抱現代

名人說:博觀而約取,厚積而薄發。——蘇軾《稼說送張琥》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 目錄 一、引言:命令行的新利器二、Edit:致敬經典,擁抱現代1. 命令行的“新升級”2. 為什么要有 Edit?三、核心功能與特性一覽1. 完全開源、MIT 許可證…

使用MybatisPlus實現sql日志打印優化

背景&#xff1a; 在排查無憂行后臺服務日志時&#xff0c;一個請求可能會包含多個執行的sql&#xff0c;經常會遇到SQL語句與對應參數不連續顯示&#xff0c;或者參數較多需要逐個匹配的情況。這種情況下&#xff0c;如果需要還原完整SQL語句就會比較耗時。因此&#xff0c;我…

go多線程壓測監控

實現了 go多協程壓力測試實現了Monitor&#xff0c;異步統計qps、時延、cpu(client端)等指標&#xff0c;周期printStat。只需要把單條執行func傳給Monitor即可命令行傳參ctrlc之后正常退出(mock cpu 占用) 代碼見 https://gitee.com/bbjg001/golearning/tree/master/others/…

安卓無障礙腳本開發全教程

文章目錄 第一部分&#xff1a;無障礙服務基礎1.1 無障礙服務概述核心功能&#xff1a; 1.2 基本原理與架構1.3 開發環境配置所需工具&#xff1a;關鍵依賴&#xff1a; 第二部分&#xff1a;創建基礎無障礙服務2.1 服務聲明配置2.2 服務配置文件關鍵屬性說明&#xff1a; 2.3 …

閑時處理技術---CAD C#二次開發

在CAD C#二次開發中&#xff0c;使用閑時處理技術可以提高程序的響應性能和資源利用率。以下是一般的實現步驟&#xff1a; 1. 了解CAD的事件機制 CAD提供了一些事件&#xff0c;如 Idle 事件&#xff0c;當CAD應用程序處于空閑狀態時會觸發該事件。你可以訂閱這個事件來執行閑…

Git研究

以下命令在CentOS系統下執行 創建Git倉庫 git init git-example 監控.git目錄的變化情況&#xff1a; watch -n .5 tree .git 寫入文件內容&#xff0c;并把文件添加到Stage暫存區 echo 1 > t.txtgit add 1.txt 觀察結果如下&#xff1a;objects下多出了一個d00491fd…

野火魯班貓(arrch64架構debian)從零實現用MobileFaceNet算法進行實時人臉識別(四)安裝RKNN Toolkit Lite2

RKNN Toolkit Lite2 是瑞芯微專為RK系列芯片開發的NPU加速推理API。若不使用該工具&#xff0c;計算任務將僅依賴CPU處理&#xff0c;無法充分發揮芯片高達6TOPS的NPU算力優勢。 按照官方文檔先拉一下官方代碼庫&#xff0c;然后通過whl文件安裝&#xff0c;因為我是python3.1…

Vue3集成Element Plus完整指南:從安裝到主題定制下-實現后臺管理系統框架搭建

本文將詳細介紹如何使用 Vue 3 構建一個綜合管理系統&#xff0c;包括路由配置、頁面布局以及常用組件集成。 一、路由配置 首先&#xff0c;我們來看系統的路由配置&#xff0c;這是整個應用的基礎架構&#xff1a; import {createRouter, createWebHistory} from vue-rout…

【Oracle】創建公共數據連接

需求描述 兩個oracle數據庫&#xff0c;想從B數據庫創建視圖腳本訪問A數據庫相關表的數據&#xff0c;該怎么訪問呢&#xff1f; 解決方法 在Oracle數據庫中&#xff0c;創建公共數據庫鏈接&#xff08;Public Database Link&#xff09;可以允許數據庫中的任何用戶訪問遠程…

時序數據庫IoTDB的分片與負載均衡策略深入解析

一、引言 隨著數據庫服務的業務負載增加&#xff0c;擴展服務資源成為必然需求。擴展方式主要分為縱向擴展和橫向擴展。縱向擴展通過增加單臺機器的能力&#xff08;如內存、硬盤、處理器&#xff09;來實現&#xff0c;但受限于單臺機器的硬件能力。而橫向擴展則通過增加更多…

計算機網絡期末復習資料

我用夸克網盤分享了「計算機網絡」&#xff0c; 鏈接&#xff1a;https://pan.quark.cn/s/8aac2f0b840e 計算機網絡試題庫 1單項選擇題 1.1以下屬于物理層的設備是 ( A) A. 中繼器 B.以太網交換機 C. 橋 D. 網關 1.2在以太網中&#xff0c;是根據 (B) 地址來區分…

【IEEE 2025】低光增強KANT(使用KAN代替MLP)----論文詳解與代碼解析

【IEEE 2025】本文參考論文Enhancing Low-Light Images with Kolmogorov–Arnold Networks in Transformer Attention 雖然不是頂刊&#xff0c;但是有值得學習的地方 論文地址&#xff1a;arxiv 源碼地址&#xff1a;github 文章目錄 Part1 --- 論文精讀Part2 --- 代碼詳解形狀…

naivechain:簡易區塊鏈實現

naivechain&#xff1a;簡易區塊鏈實現 naivechain A naive and simple implementation of blockchains. 項目地址: https://gitcode.com/gh_mirrors/nai/naivechain 項目介紹 naivechain 是一個簡單且易于理解的區塊鏈實現項目。它使用 Go 語言編寫&#xff0c;以極簡…