原创 2021,大廠架構師純手寫MySQL面試筆記,重出江湖,錘爆38K月薪,你值得擁有 MySQL基礎到高級到調優筆記 MySQL面試解析108題文檔

MySQL 作爲主流的數據庫,是各大廠面試官百問不厭的知識點,但是需要了解到什麼程度呢?僅僅停留在 建庫、創表、增刪查改等基本操作的水平可不夠。在面試後端開發的時候,一連幾個問題,簡直會被問到一臉懵逼。 MySQL 語句怎麼優化?分庫,分

原创 搞懂這道百度面試題:Spring 中 Bean 的生命週期 前言 一、Bean 的完整生命週期 Bean 完整的生命週期 二、Bean 的生命週期驗證

前言 這其實是一道面試題,是我在面試百度的時候被問到的,當時沒有答出來(因爲自己真的很菜),後來在網上尋找答案,看到也是一頭霧水,直到看到了《Spring in action》這本書,書上有對Bean聲明週期的大致解釋,但是沒有代碼分析,所

原创 面試官:高併發場景,你要如何實現系統限流? 1. 計數器法 2. 漏桶和令牌桶算法 不同限流算法的比較

如果不考慮高併發的情況,即使業務系統平時運行得好好的,併發量一旦增加就會頻繁出現各種詭異的業務問題,比如,在電商業務中,可能會出現用戶訂單丟失、庫存扣減異常、超賣等問題。 限流是服務降級的一種手段,顧名思義,通過限制系統的流量,從而實現保護

原创 畢設、實戰練習——springboot 搭建訪客管理系統 項目介紹 項目適用人羣 開發環境 所用技術 項目訪問地址 項目截圖 關鍵代碼: 注意事項

項目介紹 springboot搭建的訪客管理系統,針對高端基地做嚴格把控來訪人員信息管理,用戶後端可以設置多個管理員帳號,給予不同部門的管理層使用,用戶管理可以增加/修改內部成員的基本信息,需要到訪的人員必須通過進入程序,在訪客預約裏面提交

原创 原來弄懂Spring IOC(控制反轉),其實沒有那麼難 Spring IOC(控制反轉) 案例 如何解決問題 IOC思想

Spring IOC(控制反轉) IOC控制反轉基本理念就是將程序控制權從程序員手中交給用戶自定義,從而避免了因爲用戶一個小需求的變化使得程序員需要改動大量代碼。 案例 如果按照之前javaweb的固定方法,寫一個簡單的業務邏輯 1.一個

原创 Java面試必考題——ArrayList常見知識點 寫在之前 面試回顧 源碼 總結

寫在之前 對於ArrayList的面試題目網上比較多,但是大多數從ArrayList的數據結構出發,比如查找、修改的等效率問題分析,本篇文章想從併發的角度入手,給大家講講ArrayList的併發問題該如何回答。 面試回顧 通常容器之類的問題

原创 手把手玩項目——搭建Java共享網盤 項目介紹 項目適用人羣 開發環境: 所用技術: 項目訪問地址 項目結構 項目截圖 關鍵代碼:

項目介紹 在線共享網盤採用jsp+servlet搭建項目結構實現共享網盤,項目分爲管理員,普通用戶和付費用戶三種角色,根據不同角色控制不同權限,實現不同用戶對個人文件文件,所有文件,共享文件的增刪改查操作。 項目適用人羣 正在做畢設的學生,

原创 Strings=newString("xyz")創建幾個實例 從面試題說起 String結構 正常的問題與合理的解釋 分清變量和實例 類加載 JVM優化 klass-oop 字符串常量池 總結

從面試題說起 String s = new String("xyz"); 創建了幾個實例? 這是一道很經典的面試題,在一本所謂的Java寶典上,我看到的“標準答案”是這樣的: 兩個,一個堆區的“xyz”,一個棧區指向“xyz”的s。 這

原创 不懂看這——Mybatis執行流程源碼分析

第一部分:項目結構 user_info表:只有id和username兩個字段 User實體類: public class User { private String username; private String pass

原创 Java中讀寫鎖的設計以及實現,不懂進來 讀寫鎖遵守以下三條基本原則 讀寫鎖如何實現 獲取讀鎖 釋放讀鎖 獲取寫鎖 釋放寫鎖 鎖的降級 RRW需要注意的問題

針對讀多寫少的場景,Java提供了另外一個實現Lock接口的讀寫鎖ReentrantReadWriteLock(RRW),之前分析過ReentrantLock是一個獨佔鎖,同一時間只允許一個線程訪問。 而 RRW 允許多個讀線程同時訪問,但

原创 synchronized用法原理和鎖優化升級過程(面試) 簡介 synchronized使用層面 synchronized JVM層面 synchronized的優化層面 總結

簡介 多線程一直是面試中的重點和難點,無論你現在處於啥級別段位,對synchronized關鍵字的學習避免不了,這是我的心得體會。下面咱們以面試的思維來對synchronized做一個系統的描述,如果有面試官問你, 說說你對synchron

原创 漫談一下 SpringBoot 的起步依賴和自動配置 起步依賴 什麼是起步依賴 使用起步依賴 覆蓋起步依賴引入的依賴 自動配置

起步依賴 什麼是起步依賴 在沒有SpringBoot之前,如果要使用Spring開發一個web工程,我們需要怎麼做呢? 首先,我們需要添加Spring、SpringMVC的框架的依賴,有時還需要考慮這些依賴間的版本兼容性,我們pom.xml

原创 優雅的講解JAVA操作數據庫方式與設計模式應用 1. 在業務層使用JDBC直接操作數據庫-最簡單,最直接的操作 3.數據庫資源管理模式

1. 在業務層使用JDBC直接操作數據庫-最簡單,最直接的操作 1)數據庫url,username,password寫死在代碼中 Class.forName("oracle.jdbc.driver.OracleDriver").newIn

原创 Mybatis動態映射,這次終於搞明白了 if+where實現多條件查詢 建議 if+trim+foreach實現多條件查詢 set choose Bind 總結

動態 SQL 是 MyBatis 的強大特性之一。如果你使用過 JDBC 或其它類似的框架,你應該能理解根據不同條件拼接 SQL 語句有多痛苦,例如拼接時要確保不能忘記添加必要的空格,還要注意去掉列表最後一個列名的逗號。利用動態 SQL,可

原创 mybatis-plus如何自動填充字段創建時間和修改時間 前言 自動填充 代碼層面

前言 根據阿里巴巴開發手冊,表必備三個字段:id,create_time, update_time,針對創建時間和修改時間我們有兩種方式可以去生成——數據庫層面和代碼層面 自動填充 數據庫層面 數據庫層面,就是在設計表的時候,針對某一個字段