原创 Mysql鎖機制原理innodb

前言: 唏噓唏噓,提前批投了一手字節,簡歷就被篩選掉了,無時無刻不在提醒我是個小菜雞=。=,老老實實更新了。 鎖 鎖的粒度 行鎖 只針對操作的當前行進行加鎖。併發情況下,產生鎖等待的概率較低,支持較大的併發數,但開銷大,加鎖慢,

原创 爲什麼要用建立索引以及爲什麼要用b+樹?

前言: https://www.youtube.com/watch?v=aZjYr87r1b8 看到了一個印度阿三講述的B樹和B +樹。它們在數據庫中的作用。精了,以前一直模模糊糊的問題這裏一下子就清晰了。這裏記錄下來。 磁盤結構

原创 網絡安全基本概念以及結合https分析

前言: 本來打算計網就這樣結束的,但是貌似安全方面以及https方面沒了解,就翻書順手把那章節大概看了,這裏總結一下。 對稱密鑰密碼體系 在發送方和接收方 公用一個密鑰。加密和解密都是用此密鑰。這個共享密鑰不能爲他人所知,只能由雙

原创 擁塞控制原理

前言: 好久沒更新了,一直堆在筆記本里面,堆了有兩三篇博客了,一直懶得更新,今晚逼着自己更新=。= 新的寫法:摒棄了之前照抄書本的冗餘文字,大多數以自己的話來口述過程。雖然可能會不準確,但看起來更像是自己的東西哈哈。 何爲擁塞

原创 Wireshark實驗分析各種協議

前言: 看完了計網的五層結構,就實際操作一下來捉下不同層下的協議包來康康。加深一下印象=。= 實驗準備 Wireshark軟件 隨意獲取一個網站的ip地址,用於過濾 TCP三次握手 TCP三次握手用於建立TCP連接。 三次握手

原创 Web頁面的請求過程

前言: 到這裏的話,我想計網,應該告一段落了,還剩一點密碼安全之類的,有空再補補咯,這裏藉着書上的最後一波總結。 請求過程: 先貼上書上的場景圖。 準備:DHCP、UDP、IP和以太網 由於一開始主機通過網線連接入學校網絡的時候

原创 網絡層----數據平面

前言: 最緊要記得自己爲咩上臺—《激戰》 網絡層基本概括: 網絡層主要功能爲 轉發(將數據從路由器輸入接口轉移到合適的輸出接口) (數據平面) 路由選擇(端到端的路徑選擇),每臺路由器都有一張轉發表,用最長前綴匹配規則來轉發。(

原创 AQS隊列同步器的實現分析

前言: 上一篇文章已經講完了大致瞭解同步器對於我們的作用,這裏就來分析下如何完成線程同步。主要包括:同步隊列、獨佔式同步狀態獲取與釋放、共享式同步狀態獲取與釋放以及超時獲取同步狀態等同步器的核心數據結構與模版方法。 同步隊列 同步

原创 JAVA堆溢出

前言: 看到學校課程q羣裏面有個同學說遇到oom問題怎麼辦,然後有一個同學給出了分析dump文件,這讓我回想當時看深入理解jvm這本書的時候也看到了相關的例子,不過當時沒有跟着操作下去。現在來補一補 實現內存泄漏導致java堆溢出

原创 Lock接口與AQS隊列同步器

Lock接口 首先要說明的就是Lock,通過查看Lock的源碼可知,Lock是一個接口: public interface Lock { void lock(); void lockInterruptibly()

原创 單例模式雙重檢測鎖詳解以及爲何雙重檢測

前言: 在瞭解完volatile關鍵字之後,再仔細思考了單例模式的雙重檢測,發現以前挺多東西還沒懂的。 DCL(Double Check Lock) public class Singleton { private volati

原创 JAVA內存模型與線程(一)

前言: 《深入理解jvm》差不多看完了重點的部分,揭祕下下一本書是《java 併發藝術》,繼續沖沖衝。 JAVA內存模型(JMM) Java虛擬機規範中試圖定義一種Java內存模型(Java Memory Model,JMM

原创 JAVA內存模型與線程(二)

JAVA線程調度 協同式線程調度 線程的執行時間由線程本身來控制,線程把自己的工作執行完了之後,要主動通知系統切換到另外一個線程上。優點:實現簡單。缺點:執行時間不可控制。 搶佔式線程調度 每個線程由系統分配執行時間

原创 雙親委派模型的破壞(JDBC例子)

雙親委派模型的破壞 雙親委託模型並不是一個強制性的約束模型,而是java設計者推薦給開發者的淚加載器實現方式。但是雙親委託模型存在着缺陷,它雖然解決了各個類加載器的基礎類的統一問題,基礎被稱爲基礎,就是因爲他們總是被用戶代碼調用,

原创 垃圾收集器與內存分配策略(一)

前言: 好像蠻久沒有更新《深入理解jvm》這本書了,又回來填坑了。 垃圾收集器與內存分配策略。 程序計數器、虛擬機棧、本地方法棧三個區域隨線程而生,隨線程而滅。這幾個區域的內存分配和回收都具備確定性,在這幾個區域基本不需要考慮回收