原创 14 關於鎖的inflate

前言 呵呵 我們知道 jdk1.6 的時候對 synchronized 關鍵字的處理做了很多優化, 因此關於 synchronized 多了很多的名詞, 偏向鎖, 輕量級鎖, 自旋鎖, 重量級鎖 等等    09 給對象添加偏向鎖的調試

原创 13 輕量級鎖的重入 以及 線程1獲取輕量級鎖並釋放線程2獲取鎖 的調試

前言  09 給對象添加偏向鎖的調試 10 偏向鎖的退出的調試 11 偏向鎖的重入 以及 線程1獲取偏向鎖並釋放線程2獲取鎖 的調試 12 給對象添加輕量級鎖的調試 呵呵 接着前幾篇    本文調試一下 一下的幾個場景 1. 輕量級的重入

原创 12 給對象添加輕量級鎖的調試

前言 09 給對象添加偏向鎖的調試 10 偏向鎖的退出的調試 11 偏向鎖的重入 以及 線程1獲取偏向鎖並釋放線程2獲取鎖 的調試 呵呵 接着前三篇  我們這裏來調試一下 輕量級鎖    一下內容基於 jdk9 + lldb-1001.0

原创 01 一些關於java編譯器的問題(init, clinit的生成, 自己實現javap?)

前言  呵呵 最近看到了一系列跟 java編譯器 相關的一系列的問題, 所以整理了一下  一下部分代碼, 截圖 基於 : jdk7u40, idea2019 的 bytecode viewer, jls7, jdk7 的 javac   

原创 02 FinalReference.referent的回收時機

前言  在某本書上面曾經看到過, Hotspot VM 的 gc 是準確式GC, 我的理解就是 這一次 gc 之後 應該會把所有的 "垃圾對象" 清理掉  假設對應的 $FinalizedClazz 重寫了 finalize 方法, 並且

原创 02 關於類型參數通配符

  前言 之前看到了這樣的一篇帖子, 裏面有這樣的一個問題, 呵呵呵 嘗試了一下 感覺還是有一些意思   https://hllvm-group.iteye.com/group/topic/35492?page=2    以下內容引用於原

原创 47 關於Spring集成單元測試

前言  呵呵 這個還是準備了一陣子了, 應該有 兩週了吧, 不過 最近比較忙  主要是, 我們經常使用到單元測試, 然後其中又有一些比較特殊的用法, 感覺到有些不可思議, 然後 花了一些時間跟蹤了一下 相關的代碼, 在這個過程中也瞭解到了

原创 25 編譯依賴項目自制小腳本

前言 一般我們項目都會有很多的依賴, 然後 有些時候我們需要先 build 這些依賴的項目, 然後 才能 build 我們關注開發的項目  然後 在有些場景下面 我們不能直接通過 IDE 導入我們的依賴, 直接 idea install

原创 45 一個InetAddress.getLocalHost導致SpringBoot啓動延遲問題排查

前言  啓動 spring-boot 的相關項目的時候, 會打印如下日誌 Connected to the target VM, address: '127.0.0.1:62630', transport: 'socket'

原创 03 回顧反射參數問題

前言  在上週的時候, 看了一下 我的 "05 問題" 這一系列博客, 看了一下 第一篇文章, "01 反射參數問題", 發現了一些當時 遺留的一些問題, 呵呵 當時可能由於 水平啊, 理解啊 各方面的原因, 這個就當做了一個問題 記錄在

原创 50 簡單瞭解下MockUp

前言 呵呵 最近在寫單元測試的時候, 正在頭疼 怎麼構造測試用例的數據呢?, 有些情況實在是比較太難造出來, 又或者是造出來 時間成本太大了, 還要去做仔細的考慮(還需要單步調試, 有些時候這裏被過濾掉了, 但是實際上我們不期望它被過濾掉

原创 48 被generated的類在idea中二次編譯的問題

這是一個故事  呵呵 最近的時候 又這樣一個問題, 我們項目裏面會 自動生成一系列的實體 (可以理解爲 類似於 mybatis 逆向工程生成實體之類的情況)  我們在啓動項目之前, 會先編譯當前項目, 然後 編譯項目的時候 會刪除掉這些

原创 46 PostgreSql更新給定的數組的某一個元素

前言  最近上有這樣一個問題, 項目上線之後, 上下一個版本的時候, 可能需要升級一部分的配置數據 之類的東西  而 這部分的數據 有些可能是存放在 json數組 字段裏面的, postgresql 裏面是 json, jsonb 類型 

原创 05 相互引用的類加載的調試

前言  呵呵, 最近看到了這樣的一篇文檔, Java類初始化的相互引用和次序問題 , 也是一個 很經常看到的基礎問題 但是 在以前的話, 我一定是思考那些理論來分析這個問題, 比如 main 中 讀取 Clazz1.x1 導致了 Claz

原创 07 運行時常量池索引的 rewrite

前言 如果您看過這篇文章的話, 57 相互引用的類加載的調試, 那麼還記得文章最末尾留下來的問題麼 ?  細心的你, 可能會發現 code 運行時的字節碼 和 class 文件中的字節碼有一些不一樣的地方 ? 發現沒得, getstat