原创 爬蜥學習之旅

編程語言 java之旅總覽 算法 算法 網絡 網絡 機器學習與數據挖掘 機器學習與數據挖掘 工具 工作中那些有用的工具

原创 算法之旅總覽

常用算法思想 回溯法 分治法(Divide and Conquer)怎麼用? 動態規劃怎麼用? 常見動態規劃的解決思路 詳細分析揹包問題 數據結構 AVL樹:解決BST可能導致的長鏈問題 Binary Search Trees(

原创 kafka之旅總覽

初識kafka 初識kafka集羣 初識kafka中的生產者與消費者 初識kafka對消息處理與可靠性做出的保證

原创 網絡之旅總覽

傳輸層TCP TCP協議之旅總覽 鏈路層 鏈路層是做什麼的? websocket websocket簡介 待續

原创 工作中那些有用的工具

項目 maven jar構建 git上的後悔藥 視頻編輯 IMOVIE使用 數據處理 pandas處理文本的方便之處 Linux命令 Linux上的方便命令

原创 機器學習與數據挖掘之旅

NLP java版JieBa分詞源碼走讀 HMM(隱馬爾科夫模型)與維特比算法 模式識別 模式識別中的Apriori算法和FPGrowth算法 文本獲取與搜索引擎 文本獲取和搜索引擎簡介 文本獲取與搜索引擎中的TF,TF-IDF 文本獲取

原创 java之旅總覽

java併發之旅 Java併發編程之旅總覽 IO java nio中的select和channel是怎麼使用的? 一文告訴你java NIO底層用到的那些connect、bind、listen、accept、close從java的NIO版

原创 TCP協議之旅總覽

可靠性、協議格式、tcpDump 可靠性、協議格式、tcpDump 處理連接 處理連接 數據傳輸 數據傳輸 超時處理 超時處理 侷限性與定時器 侷限性 定時器

原创 Netty之旅總覽

一篇文章入門Netty ByteBuf詳解 ChannelHandler流程詳解 EventLoop流程詳解 Bootstrap使用詳解 ChannelHandler做測試 數據格式轉換與自帶Channel工具 Netty Hell

原创 從wait的源碼看撤銷偏向鎖的過程(revoke and rebias)

wait源碼實現如下 //TRAPS表示是否有異常 void ObjectSynchronizer::wait(Handle obj, jlong millis, TRAPS) { if (UseBiasedLocking) {

原创 safe-point(safepoint 安全點) 和 safe-region(安全區域)

以 GC safe-point引入 GC如何找到不可用的對象 編寫代碼的時候是可以知道對象不可用的,但對於程序來說,需要一定的方式來知曉,可用方法比如:編譯分析,引用計數,和對象是否可達 可達性分析 一個對象只要能夠通過mutator觸達,

原创 偏向鎖狀態轉移原理

爲什麼需要偏向鎖 當多個處理器同時處理的時候,通常需要處理互斥的問題。 一般的解決方式都會包含acquire和release這個兩種操作,操作保證,一個線程在acquire執行之後,在它執行release之前,其它線程不能完成acquir

原创 LockSupport中的park與unpark原理

LockSupport是用來創建locks的基本線程阻塞基元,比如AQS中實現線程掛起的方法,就是park,對應喚醒就是unpark。JDK中有使用的如下 LockSupport提供的是一個許可,如果存在許可,線程在調用park的時候,會立

原创 CAS(compareAndSwap)原理

unsafe中對應擁有三個方法 compareAndSwapObject ,compareAndSwapInt和compareAndSwapLong ,他們都被標記爲native compareAndSwapObject 它的核心實現爲 o

原创 Java中的顯示鎖ReentrantLock使用與原理詳解

這篇文章主要介紹了Java中的顯示鎖ReentrantLock使用與原理詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 考慮一個場景,輪流打印0-100以內的技術和偶數。通過使用