原创 java面試題 --- 基礎

前段時間給大家發過一份 java 面試題的思維導圖,接下來我會用通俗、簡潔、易記的話將其整理成一系列的文章,加深自己印象的同時,也希望能助大家跳槽成功! 1. 說說 java 的基本數據類型以及所佔的字節數。 byte、short、i

原创 教你一招,安卓手機秒變服務器

本教程建議用舊手機嘗試!本人用的機型是Redmi note7 pro,步驟如下: 1. 解鎖手機 現在安卓機都加了BL鎖,首先百度一下你的機型怎麼解BL鎖,然後參照教程解鎖就行。 2. 獲取Root權限 關於獲取Root權限有很多方式,我

原创 你對常量池夠了解嗎 一、class 常量池 二、字符串常量池 三、運行時常量池

在 java 中,常量池分爲以下三種: class 常量池 字符串常量池 運行時常量池 一、class 常量池 1. 是什麼? 是class文件中的資源倉庫。我們的 class 文件,用十六進制編輯器( notepad++ 安裝 Hex

原创 教你一個惡作劇

selenium可以實現web自動化,什麼叫web自動化?比如我們要登錄百度,首先輸入百度的網址,然後找到登錄按鈕,輸入用戶名和密碼,最後點擊登錄。這是手動操作的過程,我們可以將網址,登錄的用戶名和密碼這些信息都寫在代碼中,然後用selen

原创 布隆過濾器 一、緩存穿透 二、布隆過濾器 三、hutools 中的布隆過濾器源碼分析

一、緩存穿透 項目中的熱點數據我們一般會放在 redis 中,在數據庫前面加了一層緩存,減少數據庫的訪問,提升性能。但如果,請求的 key 在 redis 中並不存在,那請求還是會抵達數據庫,這就叫緩存穿透。 我們無法避免緩存穿透,因爲數據

原创 AQS --- 漸入佳境 一. 工作原理 二. 相關源碼: 三. 從 ReentrantLock 看 AQS:

上一講了解了 AQS 是什麼,接下來看看它到底是怎樣的結構。 一. 工作原理 AQS 使用一個 volatile 的 int 類型的成員變量來表示同步狀態,通過內置的 FIFO 隊列來完成資源獲取和排隊工作,將每條要去搶佔資源的線程封裝成一

原创 AQS --- 初窺門徑

AQS這個詞你可能耳熟能詳了,但是面試問道,可能又說不出個所以然來。別急少年,我一次奇遇偶得一本失傳已久的武林祕籍,學完你就能達到已臻化境的境界,祕籍目錄如下: 初窺門徑 漸入佳境 融會貫通 我看你骨骼驚奇,有道靈光從天靈蓋射出,確定不

原创 AQS --- 融會貫通 一、ReentrantLock 加鎖過程簡介 二、ReentrantLock 加鎖源碼分析

一、ReentrantLock 加鎖過程簡介 加鎖可以分爲三個階段: 嘗試加鎖; 加鎖失敗,線程入AQS隊列; 線程入隊列後進入阻塞狀態。 二、ReentrantLock 加鎖源碼分析 現有如下場景: 三個人去銀行的一個窗口辦理業務,一

原创 瞭解過LockSupport嗎

1. 是什麼? LockSupport是JUC包下的一個類,是用來創建鎖和其他同步類的基本線程阻塞原語。 相信大多數人看了這句話也還是不太明白它到底是啥東西,那你還記得等待喚醒機制嗎?之前實現等待喚醒機制可以用wait/notify,可以用

原创 MySQL鎖機制 一、鎖的分類 二、表鎖 三、行鎖 四、索引失效行鎖變表鎖問題 五、間隙鎖的危害

MySQL主要有表鎖,行鎖和頁鎖,頁鎖用得少,本文主要介紹表鎖和行鎖。 一、鎖的分類 從對數據的操作類型來分,可以分爲讀鎖和寫鎖;從對數據操作粒度來分,可分爲表鎖和行鎖。 讀鎖(共享鎖):針對同一份數據,多個讀操作可以同時進行而不會互相影

原创 MySQL主從複製 一、環境準備 二、修改配置

本文將手把手教你怎麼配置MySQL的主從。 一、環境準備 主機:192.168.0.101 從機:192.168.0.105 首先這主機和從機上安裝MySQL,大家可以安裝mariadb,更簡單一點兒,安裝命令如下: # 安裝 yum

原创 談談你對ThreadLocal的理解

1. 你知道ThreadLocal是什麼嗎? 簡單地說,就是用來隔離數據的。用ThreadLocal來保存的數據,只對當前線程生效,當前線程對該數據做的任何操作,對別的線程是不生效的。舉個栗子一看便知: public class TestT

原创 MySQL函數&存儲過程 一、是什麼 二、能幹嘛

上一篇文章中說到了定位慢sql,拿到了慢sql後,我們要怎麼重現問題呢?那麼就需要造數據。函數和存儲過程就可以幫助我們造大量的數據,用來重現生產環境的問題。 一、是什麼 函數和存儲過程都是sql的集合,就是用sql寫的一段代碼。函數與存儲過

原创 MySQL show profile

1. 是什麼? 是MySQL提供的可以用來分析當前會話中語句執行的資源消耗情況的工具,可以用於sql調優的測量。默認是處於關閉狀態的,會保存最近15次的運行結果。 2. 查看狀態: 執行如下命令即可查看profile的狀態: show va

原创 MySQL的排序和分組

order by和group by這兩個要十分注意,因爲一不小心就會產生文件內排序,即file sort,這個性能是十分差的。下面來看具體的案例分析。 首先建表: create table `tblA`( `id` int not nu