原创 Java併發--原子變量類的使用

注:本篇博客主要內容來源於網絡,侵刪~ 引言 我們假設你已經熟練掌握了CAS,原子變量類等的相關概念。這篇博客中,我們主要討論原子變量類的使用。 原子變量類 原子變量類共12個,分4組: 計數器:AtomicInteger,Ato

原创 Java併發--深入理解顯式鎖

注:本篇博客部分內容引用自:Java併發編程:Lock 引言 在Java 5.0之前,協調對共享對象的訪問可以使用到的機制只有synchronized和volatile。在Java 5.0之後,增加了一種新的機制:ReentrantL

原创 Java併發--深入理解線程池

爲什麼需要線程池 在生產環境中,我們不能無限制的創建線程,主要原因如下: 線程創建與銷燬的代價並不低; 如果可運行的線程數量多於可用處理器的數量,有些線程將會閒置,大量閒置的線程會消耗系統資源(內存)並給垃圾收集器帶來壓力; 大量線

原创 Java併發--synchronized實現原理及鎖優化

注:本文中的部分內容摘抄自他人博客,如有侵權,請聯繫我,侵刪~ 本篇博客主要講述 synchronized 關鍵字的實現原理以及 JDK 1.6 後對 synchronized 的種種優化。synchronized 的使用不再贅述。 博

原创 Java源碼--JDK 1.8 HashMap 重點源碼部分剖析

注:感謝 美團點評技術團隊 的分享~~,博客部分內容摘抄自其中。侵刪! 今天我們來探究一下 HashMap 的內部實現機制。 明確 JDK 1.8 中的 HashMap 使用數組 + 鏈表 + 紅黑樹的結構進行實現。 HashMap

原创 計算機組成原理--64位CPU裝載32位操作系統,它的尋址能力還是4GB嗎?

藉由這個問題,今天我們就把 32 位 CPU、64 位 CPU、32 位操作系統、64 位操作系統之間的區別與聯繫徹底搞清楚。對於這個問題,博主也是一知半解了好長時間啊~ 基本概念 32位的CPU與64位CPU 以下內容摘自維基百科:

原创 計算機網絡--淺談電子郵件的工作原理

序言 對於大多數人來說,我想,接觸的第一個電子郵箱應該都是QQ郵箱。我也不例外,從第一次接觸QQ郵箱開始,就對這種有別於傳統郵箱的軟件產生了一些興趣,卻由於種種原因一直都沒有去探究它。前段時間剛好在找實習,期間凸顯了電子郵箱的重要性,剛好

原创 排序--堆排序分析與實現

何爲堆 一個數組序列我們可以將其用完全二叉樹或近似完全二叉樹(不是滿二叉樹的完全二叉樹)表示出來,當數組下標爲i時,它的父節點爲(i-1)/2,左孩子爲(2i+1),右孩子爲(2i+2),這種對應關係說明數組下標爲0的地方也要存儲數據。(

原创 Java Web--XiyouLinux Group圖書借閱平臺的實現

源碼地址:XiyouLinux Group 圖書借閱平臺 項目地址中包含了一份README,因此對於項目的介紹省去部分內容。這篇博客,主要講述項目中各個模塊的實現細節。 項目概述及成果 首先將本項目使用到技術羅列出來: 使用Spri

原创 JVM--再談繼承與多態

此文試圖從JVM層面深刻剖析Java中的繼承與多態,知識面覆蓋class字節碼文件,對象的內存佈局,JVM的內存區域、分派,方法表等相關知識,內容整合於大量博客,知乎,書籍,並加上博主自己的理解,相信看完會對你大有裨益! 即使博主在JVM

原创 JVM--剖析類與對象在JVM中從生存至死亡

前面學習了Class文件結構、類的加載機制、字節碼執行引擎、對象的創建與銷燬,所以我準備從一個Java代碼進行切入,詳細剖析它的生命歷程,將所學的知識真正的用起來,也算是對前面所學的知識進行一個系統的總結。 我們以這份Java代碼爲例,

原创 計算機網絡--詳解P2P對等網絡(一)—BitTorrent協議

注:本篇文章內容借鑑自:淺入淺出BitTorrent協議,其中加入了博主的部分原創,感謝,侵刪~ 對等網絡的概念 以下定義主要摘抄自維基百科與中科院計算技術研究所: 對等式網絡(peer-to-peer,簡稱P2P),又稱點對點技術,是

原创 計算機網絡--詳解P2P對等網絡(二)—Chord算法研究與分析

結構化與非結構化網絡 非結構化的P2P網絡是指網絡節點之間不存在組織關係,節點之間完全是對等的,比如第一代P2P網絡Napster。 結構化的P2P網絡與非結構化恰好相反,我們認爲網絡在邏輯上存在一個人爲設計的結構,比如Chord假定網絡

原创 Java網絡爬蟲(十四)--多線程爬蟲(抓取淘寶商品詳情頁URL)

源碼地址:多線程爬蟲–抓取淘寶商品詳情頁URL 項目地址中包含了一份README,因此對於項目的介紹省去部分內容。這篇博客,主要講述項目的構建思路以及實現細節。 項目概述及成果 首先將本項目使用到技術羅列出來: MySQL數據庫進行

原创 計算機網絡--詳解DNS域名系統

注:本篇博客大部分內容截選自阮一峯老師的DNS 原理入門一文。其中少部分內容是博主自己的理解。 什麼是DNS 我們知道,網絡本身只能理解數字形式的地址,也就是IP地址。但是直觀的IP地址毫無規律,很難讓人記住,並且如果使用IP地址瀏覽一個