面試題目總結(三)

1. Spring、Springboot、springMVC、Spring Cloud 的區別:

  1. Spring:Spring 是一個開源的、輕量級的Java框架,提供了豐富的功能和組件,用于構建企業級應用程序。Spring框架包含了很多模塊,包括核心容器、數據訪問、事物管理、AOP、Web開發等,可以根據需要選擇使用不同的模塊。
  2. Springboot:Springboot 是基于 Spring 框架的快速開發框架,旨在簡化 Spring 應用程序的配置和部署過程。它提供了自動配置,快速啟動,約定優于配置等特性,使得開發者可以更加專注于業務邏輯的實現而不需要過多關注繁瑣的配置。Springboot還集成了常用的功能,如嵌入式服務器、安全性、健康檢查等,方便快速構建獨立的可執行JAR包。
  3. SpringMVC:SpringMVC是Spring 框架中的一個模塊,用于開發基于MVC(Model-View-Controller)架構程序。它提供了一套處理HTTP請求和響應的機制,支持通過注解或配置文件進行請求映射、請求參數處理、視圖解析等操作。SpringMVC是一個靈活且功能的Web框架,可以與其他Spring模塊(如Springboot)進行集成使用。
  4. SpringCloud 是一個基于Springboot的開發工具集,用于構建分布式系統和微服務架構。它提供了一系列的組件和模塊,用于解決分布式系統中的常見問題,例如訪問注冊與發現、負載均衡、熔斷器、配置管理等。

2. 使用線程池創建線程時參數有哪些

  1. corePoolSize:核心線程池大小,表示線程池在保持的線程數碼,即使它們處于空閑狀態。當提交一個新的任務到線程時,如果當前線程池中的線程數量少于corePoolSize,則會常見一個新的線程來處理該任務,即使此時其他空閑的基本線程能夠處理該任務也會創建新的線程,直到到達corePoolSize為止。
  2. maximumPoolSize:最大線程池大小,表示線程池中最多呢創建的線程數目。當提交一個新任務到線程池時,如果當前線程池中的線程數目已經達到corePoolSize,并且緩沖隊列已滿,則會根據maximumPoolSize的值來判斷是否創建新的線程。如果當前線程池中的線程數目小于maximumPoolSize,則會創建新的線程。如果當前線程池中的線程數目等于或大于maximunPoolSize,則不會創建新的線程。
  3. keepAliveTime:線程池維護線程所允許的空閑時間,默認情況下,KeepAliveTime設置為0表示線程空閑后立即終止。當線程池中線程數量超過corePoolSize時,如果這些多余的線程空閑時間超過KeepAliveTime時長,則這些多余的線程將會被終止。
  4. unit:keepAliveTime的單位,可以是TimeUnit.MILLISECONDS(毫秒)、TimeUnit.SECONDS(秒)等等。
  5. workQueue:任務隊列,用于儲存已經提交但尚未執行的任務。常用的隊列類型有:ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、PriorityBlockingQueue等。
  6. threadFactory:線程創建工廠,用于設置創建線程時的一些屬性,例如線程名稱、是否為守護線程等。
  7. handler:拒絕策略,表示當前線程池中的線程數目達到maximumPoolSize并且緩沖隊列已滿時,如何拒絕新任務的執行。常見的拒絕策略有以下幾種:AbortPolicy、CallerRunPolicy、DiscardOldestPolicy、DiscardPolicy

3. 常見事物的隔離級別

事物的隔離級別是數據庫管理系統中用來控制事物并發訪問是數據可見性的一種機制

  1. 讀未提交(Read Uncommitted):允許一個事讀取另一個事務未提交的數據。這種隔離級別可能導致臟讀,即一個事務讀取了另一個事務未提交的數據,而后者最終被回滾,導致前者讀取到的數據是無效的。
  2. 讀已提交(Read Committed):保證一個事務只能讀取到另一個事務已經提交的數據。這種隔離級別可以避免臟讀,但可能導致不可重復讀,即在同一個事務中,由于其他事物的提交,某個數據的值發生了變化。
  3. 可重復讀(Repeatable Read):保證在同一個事務中多次讀取同樣的數據是,結果始終一致。這種隔離級別可以避免不可重復讀,但可能會導致幻讀,即在事務中,由于其他事務的插入或刪除,出現了新增或減少的數據行。
  4. 序列化(Serializable):最高的隔離級別,通過強制事務船型執行來避免臟讀、不可重復讀和幻讀、雖然可以解決并發訪問導致的數據不一致問題,但會導致性能嚴重下降。

4. 數據庫的索引類型有哪些

  1. B-樹索引(B-tree Index):B-樹是一種平衡的多路搜索樹,常用于支持范圍查詢。它適用于大多數數據庫系統,如MySQL、Oracle等。
  2. B+樹索引(B+tree Index):B+樹是在B-樹的基礎上進行優化的數據結構,它將所有的數據都儲存在葉子節點,并使用連接葉子節點,適用于范圍查詢和數據訪問。B+樹索引在很多關系型數據庫中被廣泛使用。
  3. 哈希索引(Hash Index):哈希索引通過將索引列的值計算哈希值,然后根據哈希值進行快速查找。哈希索引適合等值查詢,但不適合范圍查詢。例如,MySQL的內存表和MyISAM引擎支持哈希索引。
  4. 全文索引(Full-Text Index):全文索引通常用于對文本內容進行搜索。它可以創建關鍵詞索引,以便在文本中進行全文索引。全文索引可以加快文本搜索的速度,常見的數據庫系統如MySQL、PostgreSQL都提供了全文索引功能。
  5. 位圖索引(Bitmap Index):位圖索引將每個唯一的索引值與位圖進行映射,位圖的每一位表示對應索引值的存在或缺失。位圖索引適用于低基數的列。比如性別、狀態等。

5. SpringBoot 的執行流程

SpringBoot 是一個基于 Spring 框架的快速開發框架,它通過自動配置和約定優于配置的原則,簡化了Spring應用程序的開發流程,提供了一種快速構建、易于部署的方式。

  1. 加載配置文件:SpringBoot 會自動加載 application.properties 或 application.yml 等配置文化,并將其中的配置頂綁定到對應的Java對象上,這些對象被稱為Spring Bean。
  2. 創建 Spring IoC 容器:SpringBoot 會根據配置文件中的信息創建一個Spring IoC 容器,并將其中的所有Bean都裝載到容器中,在這個過程中,SpringBoot 會自動掃描所有的類,并根據注解自動配置Bean。
  3. 運行應用程序:SpringBoot 會自動其實Web服務器,監聽客戶端請求,并將請求交給合適的Controller 進行處理。在 Controller 中,SpringBoot 會自動綁定請求參數和響應結果,并調用 Service處理業務邏輯。
  4. 處理請求:在處理請求的過程中,SpringBoot 會自動執行攔截器、過濾器等組件,以及處理異常、日志等功能。同時,SpringBoot 還提供了緩存、事務、安全、任務調度等常用功能,方便開發者使用。
  5. 關閉應用程序:當應用程序關閉時,SpringBoot 會自動銷毀所有的 Bean,釋放資源,并關閉Web服務器。

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

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

相關文章

MATLAB算法實戰應用案例精講-【數模應用】漫談機器學習(七)

目錄 幾個高頻面試題目 機器學習算法工程師需要掌握哪些編程語言? 1.Python 2. C# 3.JavaScript 4. R 5.Java

Linux之Apache服務器安裝及配置

一、Apache服務器簡介 Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由于其多平臺和安全性被廣泛使用。Apache曾經是世界使用排名第一的Web服務器軟件&#xf…

VSCODE連接遠程服務器

安裝ssh插件 根據你的操作系統選擇對應的版本進行下載和安裝。 安裝完成之后,啟動vscode,選擇左側Extensions 選項卡,在輸入框搜索 remote ,選擇安裝Remote-SSH插件。 安裝完成之后會在左側新增一個選項卡Remote Explorer&#xf…

肥貓游戲報價器|計價器|王者榮耀代練陪練等游戲報價器軟件介紹說明

目錄 1. 前言2. 軟件著作權3. 軟件使用說明3.1 進入軟件3.2 用戶登錄3.3 首頁3.4 報價器3.4.1 總體介紹3.4.2 王者報價器3.4.3 LOL手游報價器3.4.4 英雄聯盟報價器3.4.5 云頂之弈報價器3.4.7 王者水晶報價器3.4.8 和平精英報價器3.4.9 蛋仔派對報價器3.4.10 穿越火線報價器3.4.…

kafka學習筆記--broker工作流程、重要參數

本文內容來自尚硅谷B站公開教學視頻,僅做個人總結、學習、復習使用,任何對此文章的引用,應當說明源出處為尚硅谷,不得用于商業用途。 如有侵權、聯系速刪 視頻教程鏈接:【尚硅谷】Kafka3.x教程(從入門到調優…

Linux mc命令教程:如何有效地使用mc命令(附案例詳解和注意事項)

Linux mc命令介紹 mc命令是Linux中的一個視覺文件管理器,全稱為Midnight Commander。它提供了一個用戶友好的界面,使得在Linux環境中的文件和目錄管理變得更加直觀和方便。mc命令支持鼠標操作和顏色顯示,同時也提供了一套菜單接口&#xff0…

TypeScript 常用高級類型

目錄 前言: TypeScript 常用高級類型 基本概念 高級類型 1. 交叉類型(Intersection Types) 2. 聯合類型(Union Types) 3. 映射類型(Mapped Types) 4. 條件類型(Conditional…

GGML 或GGUF的14種不同量化模式說明

查看 TheBloke/Llama-2–13B-chat-GGML 存儲庫中的文件,我們可以看到 14 種不同的 GGML 模型,對應于不同類型的量化。它們遵循特定的命名約定:“q” 用于存儲權重的位數(精度) 特定變體。以下是所有可能的量化方法及其…

Pytorch-Transformer軸承故障一維信號分類(三)

目錄 前言 1 數據集制作與加載 1.1 導入數據 第一步,導入十分類數據 第二步,讀取MAT文件驅動端數據 第三步,制作數據集 第四步,制作訓練集和標簽 1.2 數據加載,訓練數據、測試數據分組,數據分batch…

據房間Id是否存在,判斷當前房間是否到期且實時更改顏色

重點代碼展示&#xff1a; <template><el-col style"width: 100%;height: 100%;"><el-col :span"20"><el-card class"room_info"><avue-data-icons :option"option"></avue-data-icons></el-…

RT-DETR算法優化改進:輕量化自研設計雙卷積重新設計backbone和neck,完成漲點且計算量和參數量顯著下降

??????本文自研創新改進:雙卷積由組卷積和異構卷積組成,執行 33 和 11 卷積運算代替其他卷積核僅執行 11 卷積,YOLOv8 Conv,從而輕量化RT-DETR,性能如下表,GFLOPs 8.1降低至7.6,參數量6.3MB降低至5.8MB RT-DETR魔術師專欄介紹: https://blog.csdn.net/m0_637742…

ubuntu-c++-可執行模塊-動態鏈接庫-鏈接庫搜索-基礎知識

文章目錄 1.動態鏈接庫簡介2.動態庫搜索路徑3.運行時鏈接及搜索順序4.查看可運行模塊的鏈接庫5.總結 1.動態鏈接庫簡介 動態庫又叫動態鏈接庫&#xff0c;是程序運行的時候加載的庫&#xff0c;當動態鏈接庫正確安裝后&#xff0c;所有的程序都可以使用動態庫來運行程序。動態…

Android帝國之日志系統--logd、logcat

本文概要 這是Android系統進程系列的第四篇文章&#xff0c;本文以自述的方式來介紹logd進程&#xff0c;通過本文您將了解到logd進程存在的意義&#xff0c;以及日志系統的實現原理。&#xff08;文中的代碼是基于android13&#xff09; Android系統進程系列的前三篇文章如下…

C#基礎與進階擴展合集-基礎篇(持續更新)

目錄 本文分兩篇&#xff0c;進階篇點擊&#xff1a;C#基礎與進階擴展合集-進階篇 一、基礎入門 Ⅰ 關鍵字 Ⅱ 特性 Ⅲ 常見異常 Ⅳ 基礎擴展 1、哈希表 2、擴展方法 3、自定義集合與索引器 4、迭代器與分部類 5、yield return 6、注冊表 7、不安全代碼 8、方法…

MATLAB中cell函數的用法

cell用法 在MATLAB中&#xff0c;cell 是一種特殊的數據類型&#xff0c;用于存儲不同大小和類型的數據。cell 數組是一種容器&#xff0c;每個元素可以包含任意類型的數據&#xff0c;包括數值、字符串、矩陣、甚至其他的 cell 數組。 以下是 cell 數組的基本語法和示例&…

gitblit自建git倉庫

安裝 java sudo apt-get update sudo apt-get install openjdk-8-jdk # 或者其它你喜歡的版本 驗證&#xff1a; java -version 下載 gitblit https://github.com/gitblit-org/gitblit/releases 解壓/usr/local tar -zxvf gitblit-1.9.3.tar.gz 修改配置文件 nano /usr/local/…

【React】useCallback 使用的說明

文章目錄 useCallback的優缺點優點缺點JavaScript 的內聯優化 使用場景 用了兩年多的react&#xff0c;今天抽空寫點小內容 useCallback的優缺點 緩存了每次渲染時候 inline callback的實例 優點 關鍵點&#xff1a;利用memoize減少無效的re-render&#xff0c;通常配合shouldC…

ElasticSearch之cat trained model API

命令樣例如下&#xff1a; curl -X GET "https://localhost:9200/_cat/ml/trained_models?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"執行結果輸出如下&#xff1a; id heap_size …

如何在OpenWRT軟路由系統部署uhttpd搭建web服務器實現遠程訪問——“cpolar內網穿透”

文章目錄 前言1. 檢查uhttpd安裝2. 部署web站點3. 安裝cpolar內網穿透4. 配置遠程訪問地址5. 配置固定遠程地址 前言 uhttpd 是 OpenWrt/LuCI 開發者從零開始編寫的 Web 服務器&#xff0c;目的是成為優秀穩定的、適合嵌入式設備的輕量級任務的 HTTP 服務器&#xff0c;并且和…

docker-compose的介紹與使用

一、docker-compose 常用命令和指令 1. 概要 默認的模板文件是 docker-compose.yml&#xff0c;其中定義的每個服務可以通過 image 指令指定鏡像或 build 指令&#xff08;需要 Dockerfile&#xff09;來自動構建。 注意如果使用 build 指令&#xff0c;在 Dockerfile 中設置…