原创 JVM之垃圾收集器

背景:看完《深入理解Java虛擬機》和相關博客,對JVM還是沒有一個條理清晰的認識,遂提取了書中相關知識點和參考相關優秀博客並整理成JVM專題博文系列,幫助自己鞏固並理清有關JVM的知識重點,也分享出來給有需要的童鞋,如有差錯,歡迎拍磚!

原创 JVM之內存模型

背景:看完《深入理解Java虛擬機》和相關博客,對JVM還是沒有一個條理清晰的認識,遂提取了書中相關知識點和參考相關優秀博客並整理成JVM專題博文系列,幫助自己鞏固並理清有關JVM的知識重點,也分享出來給有需要的童鞋,如有差錯,歡迎拍磚!

原创 JVM之內存結構

JVM總體概述 JVM總體上是由類裝載子系統(ClassLoader)、運行時數據區、執行引擎、內存回收這四個部分組成。其中我們最爲關注的運行時數據區,也就是JVM的內存部分則是由方法區(Method Area)、JAVA堆(Heap)、虛

原创 JVM之線程安全

併發問題 在瞭解了JVM結構,特別是內存結構後,我們再說說併發問題產生的原因。在上面的內容中我們分析了Java堆、Java棧,知道Java堆存儲的是對象,而Java棧內存是方法執行時所需要的局部變量,其中就包括堆中對象的引用,如果多個線程同

原创 JVM之淺析

1:什麼是JVM JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用於計算設備的規範,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。Java虛擬機包括一套字節碼指令集、

原创 Java併發工具圖解

技術討論 & 疑問建議 & 個人博客 版權聲明: 本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 3.0 許可協議,轉載請註明出處!

原创 那些年,我看過的技術書籍

學習知識要善於思考,思考,再思考。 —— 愛因斯坦 前段時間抽空整理了下面試經歷,把一些自己遇到的或別人遇到的自認爲比較有特點的面試題整理一下。 Java面試題合集 Python面試題合集 但個人認爲面試題還是比較淺顯,對於剛畢業的同學可

原创 Synchronized與Lock的區別

其他:併發編程之ThreadLocal、Volatile、Synchronized、Atomic關鍵字 技術討論 & 疑問建議 & 個人博客 版權聲明: 本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 3.0 許可協議,

原创 Java併發鎖之ReentrantLock和ReentrantReadWriteLock

鎖類型: 可重入鎖:在執行對象中所有同步方法不用再次獲得鎖 可中斷鎖:在等待獲取鎖過程中可中斷 公平鎖: 按等待獲取鎖的線程的等待時間進行獲取,等待時間長的具有優先獲取鎖權利 讀寫鎖:對資源讀取和寫入的時候拆分爲2部分處理,讀的時候可以多

原创 HashMap之線程安全

導致HashMap線程不安全的原因可能有以下幾種: Hash碰撞:當多個線程同時使用put方法添加元素的時候,正巧存在兩個put的key發生了碰撞(根據hash值計算的bucket一樣),那麼根據HashMap的存儲原理,這兩個key會添加

原创 Java併發包之ConcurrentHashMap

之前整理了一份Java中常用的集合類的基本特性: Java常用集合類圖解 詳細介紹了HashMap: HashMap之淺析 HashMap之Hash碰撞 HashMap之擴容機制 HashMap之線程安全 本文分析並補充一下線程安全的H

原创 HashMap之擴容機制

首先要了解HashMap的擴容過程,我們就得了解一些HashMap中的變量: Node<K,V>:鏈表節點,包含了key、value、hash、next指針四個元素 table:Node<K,V>類型的數組,裏面的元素是鏈表,用於存放Ha

原创 HashMap之Hash碰撞

Hashmap裏面的bucket出現了單鏈表的形式,散列表要解決的一個問題就是散列值的衝突問題,通常是兩種方法:鏈表法和開放地址法。 鏈表法就是將相同hash值的對象組織成一個鏈表放在hash值對應的槽位; 開放地址法是通過一個探測算法,

原创 HashMap之淺析

什麼是HashMap? HashMap的底層結構實際上是“鏈表散列”,即數組和鏈表的結合體 爲什麼用HashMap? HashMap是一個散列桶(數組和鏈表),它存儲的內容是鍵值對(key-value)映射 HashMap

原创 Java常用集合類圖解

爲幫助周邊的萌新對Java常用集合類有個快速且直觀的瞭解,將自己對這塊的知識做了個簡單整理,現分享出來幫助更多的人 想要原件的同學可在評論區評論或私信我郵箱 技術討論 & 疑問建議 & 個人博客 版權聲明: 本博客所有文章除特別聲明外