原创 Java 內存模型,或許應該這麼理解

大家好,我是樹哥。 在前面一段時間,我連續寫了幾篇關於併發編程的文章: 從 CPU 講起,深入理解 Java 內存模型! - 陳樹義的博客 深入理解 happens-before 原則 - 陳樹義的博客 深入理解 synchronize

原创 深入理解 Java 對象的內存佈局

對於 Java 虛擬機,我們都知道其內存區域劃分成:堆、方法區、虛擬機棧等區域。但一個對象在 Java 虛擬機中是怎樣存儲的,相信很少人會比較清楚地瞭解。Java 對象在 JVM 中的內存佈局,是我們瞭解併發編程同步機制的基礎。 在 Ho

原创 老掉牙的 synchronized 鎖優化,一次給你講清楚!

我們都知道 synchronized 關鍵字能實現線程安全,但是你知道這背後的原理是什麼嗎?今天我們就來講一講 synchronized 實現線程同步背後的原因,以及相關的鎖優化策略吧。 synchronized 背後的原理 synchr

原创 深入理解 volatile 關鍵字

volatile 關鍵字是 Java 語言的高級特性,但要弄清楚其工作原理,需要先弄懂 Java 內存模型。如果你之前沒了解過 Java 內存模型,那可以先看看之前我寫過的一篇「深入理解 Java 內存模型」一文。 初學 volatile

原创 深入理解 happens-before 原則

在前面的文章中,我們深入瞭解了 Java 內存模型,知道了 Java 內存模型誕生的意義,以及其要解決的問題。最終我們知道:Java 內存模型就是定義了 8 個基本操作以及 8 個規則,只要遵守這些規則的併發操作,那麼它們就是安全的。 即

原创 從 CPU 講起,深入理解 Java 內存模型!

Java 內存模型,許多人會錯誤地理解成 JVM 的內存模型。但實際上,這兩者是完全不同的東西。Java 內存模型定義了 Java 語言如何與內存進行交互,具體地說是 Java 語言運行時的變量,如何與我們的硬件內存進行交互的。而 JVM

原创 全網顯示 IP 歸屬地,這背後的技術你知道嗎?

爲了進一步規範國內的網絡輿論,國家規定了各互聯網平臺都需要顯示 IP 歸屬地信息。微博、抖音、公衆號等多個平臺紛紛上線了 IP 歸屬地功能,這標誌着國內言論的進一步規範化。但互聯網平臺商們是怎麼通過 IP 定位到我們所屬地區的?這背後的原

原创 關於技術驅動業務的一些思考

文章首發於公衆號「陳樹義」及個人博客 shuyi.tech,歡迎關注訪問。 我們經常會說到:技術驅動業務。那到底什麼才叫技術驅動業務呢?在我看來,技術驅動業務就是用技術手段幫助業務發展。 會想到這個問題,是前陣子參加 InfoQ 的軟件開

原创 圖解排序算法,這五種最熱門!

文章首發於公衆號「陳樹義」及個人博客 shuyi.tech,歡迎關注訪問。 說到排序算法,大家估計都比較熟悉,但要你一下子寫出來又蒙圈了。所以這篇文章不會講解所有的排序算法,而是挑選最熱門的五種:冒泡排序、選擇排序、插入排序、快速排序、歸併

原创 聽說我們是新生代農民工?

文章首發於公衆號「陳樹義」及個人博客 shuyi.tech,歡迎關注訪問。 博主個人獨立站點開通啦!歡迎點擊訪問:https://shuyi.tech 大概昨天下午開始,我的朋友圈就被一個名爲「2020年北京市外來新生代農民工監測報告發布

原创 做管理就可以高枕無憂了嗎?

在程序員羣體中,經常有這樣一種觀點:30 歲了還沒做管理,是不是很失敗?年紀大了,卷不動了,不轉管理不行了!但是你轉管理之後,真的就高枕無憂了嗎?我將用我的親身經歷告訴你,轉管理並不是銀彈,轉管理並不意味着高枕無憂。 困局 我在 2019

原创 代碼腐爛可以避免嗎?

文章首發於公衆號「陳樹義」及個人博客 shuyi.tech,歡迎關注訪問。 一個蘋果放在桌子上不理它,它會慢慢地變壞。代碼也跟蘋果一樣,會發生代碼腐爛。壞的代碼就跟壞的蘋果一樣,會更容易發生腐爛、腐爛得更快。工作時間久了,關注的角度從個人

原创 其實 Linux IO 模型沒那麼難

文章首發於公衆號「陳樹義」及個人博客 shuyi.tech,歡迎關注訪問。 博主個人獨立站點開通啦!歡迎點擊訪問:https://shuyi.tech IO 其實就是 Input 和 Output,在操作系統中就對應數據流的輸入與輸出。這

原创 七年三次大重構,聊聊我的重構成長史

文章首發於公衆號「陳樹義」及個人博客 shuyi.tech,歡迎關注訪問。 博主個人獨立站點開通啦!歡迎點擊訪問:https://shuyi.tech 驀然回首,我已經工作七年了。在這七年的時間裏,做過了無數個項目,但要說大的重構,只有三

原创 聽說 JVM 性能優化很難?今天我小試了一把!

文章首發於公衆號「陳樹義」及個人博客 shuyi.tech,歡迎關注訪問。 對於 Java 開發的同學來說,JVM 性能優化可以說是比較難掌握的知識點。這不僅因爲 JVM 性能優化需要掌握晦澀難懂的 JVM 知識,還因爲 JVM 性能優化