前言 在網(wǎng)上看了很多寫紅黑樹的博客,大部分寫的都不是很到位,有些關(guān)于紅黑樹的圖都是有問題的,很多都沒有說清楚什么情況促發(fā)哪種操作,看完之后還是不理解,在查看了很多資料之后,決...
前言 在網(wǎng)上看了很多寫紅黑樹的博客,大部分寫的都不是很到位,有些關(guān)于紅黑樹的圖都是有問題的,很多都沒有說清楚什么情況促發(fā)哪種操作,看完之后還是不理解,在查看了很多資料之后,決...
前言 對JVM第三章的知識點(diǎn)進(jìn)行總結(jié),同時(shí)方便自己以后的回顧。 對象死活 引用計(jì)數(shù)算法 原理:給對象添加一個(gè)引用計(jì)數(shù)器,當(dāng)有地方引用它時(shí),計(jì)數(shù)器值就加1;當(dāng)引用失效時(shí),計(jì)數(shù)器...
前言 AQS是大部分同步鎖的核心框架,比如ReentrantLock,閉鎖 (CountDownLock),讀寫鎖 (ReentrantReadWriteLock)都是基于A...
引言 結(jié)合網(wǎng)上的各種資料,記錄HashMap源碼閱讀的過程。 存儲結(jié)構(gòu) HashMap(1.8)的存儲結(jié)構(gòu)為數(shù)組+鏈表+紅黑樹。 HashMap中一些關(guān)鍵的字段 DEFAUL...
前言 本篇主要用來記錄JAVA類加載過程以及對象的創(chuàng)建過程。闡述他們之間的關(guān)系以及自己學(xué)習(xí)過程中的疑惑。 1. 類加載過程 類加載過程是指jvm把通過.java文件編譯生成的...
前言 對JVM第二章的知識點(diǎn)進(jìn)行總結(jié),同時(shí)方便自己以后的回顧。 Java虛擬機(jī)的多線程 通過線程輪流切換并分配處理器執(zhí)行時(shí)間的方式實(shí)現(xiàn) 程序計(jì)數(shù)器 如果執(zhí)行的是Java方法,...
前言 Leetcode算法題分類練習(xí),記錄解題思路和代碼。 雙指針 題目1: 判斷一個(gè)非負(fù)整數(shù)是否為兩個(gè)整數(shù)的平方和。 思路 看成0-target開平方之間尋找兩個(gè)數(shù),使得兩...
前言 wait()方法被應(yīng)用與條件隊(duì)列,通常與notifyAll()方法組合使用,wait()方法會使不滿足狀態(tài)的線程進(jìn)入等待池等待,sleep()方法也會讓線程休眠,那么兩...
前言 volatile變量是Java提供的一種削弱的同步機(jī)制,用來確保將變量的更新操作通知到其他線程。我將在這篇博客中分享自己對volatile變量的理解。 volatile...
前言 下面對String類的創(chuàng)建方式和如何判斷兩個(gè)String類是否相等做了總結(jié)。 String的基礎(chǔ) String被聲明為final,因此String類不可被繼承。在Jav...
前言 在使用Texstudio遇到的防修改機(jī)制。 在使用Texstudio編輯論文的時(shí)候,下載了別人的.tex格式作為模板,在編寫的過程中出現(xiàn)以下的問題: 修改的內(nèi)容無法保存...
前言 在和同學(xué)討論幻讀問題的時(shí)候,他們都認(rèn)為在REPEATABLE READ隔離級別下可能會產(chǎn)生幻讀問題,于是在網(wǎng)上查詢相關(guān)資料也說可能會產(chǎn)生幻讀問題。在這篇文章中我會介紹四...
前言 NameServer是整個(gè)RocketMQ的路由中心,功能類似于Zookeeper,用于服務(wù)注冊和服務(wù)發(fā)現(xiàn),是輕量級別的Zookeeper。 NameServer核心的...
前言 之前看并發(fā)編程書的時(shí)候,對于ThreadLocal的認(rèn)識只是停留在簡單的使用階段,所以一直理解的不夠深刻,下面通過閱讀Thread Local源碼加深了對于Thread...
前言 ReentrantReadWriteLock可以說是最復(fù)雜的鎖實(shí)現(xiàn)類,這篇文章帶你弄懂ReentrantReadWriteLock實(shí)現(xiàn)讀寫鎖的所有細(xì)節(jié),在閱讀本文之前,...
前言 鎖優(yōu)化措施包括:鎖消除和鎖粗化。他們都是針對不同情況下的低效鎖操作進(jìn)行的優(yōu)化,其中鎖消除過程和逃逸分析密切相關(guān)。 什么是逃逸分析 逃逸分析的作用是分析對象的動態(tài)作用域,...