原创 每日一道 LeetCode (54):電話號碼的字母組合

每天 3 分鐘,走上算法的逆襲之路。 前文合集 每日一道 LeetCode 前文合集 代碼倉庫 GitHub: https://github.com/meteor1993/LeetCode Gitee: https://gitee.c

原创 「補課」進行時:設計模式(2)——通過一個超級汽車工廠來了解工廠模式

1. 超級汽車工廠 汽車相信大家都不陌生,我們現在最常用的交通工具得益於在奔馳在 1885 年研製的第一輛「三輪車」,就是下面這個傢伙: 今天我來試一下使用程序通過汽車工廠來造汽車。 1.1 定義一輛汽車 public interfac

原创 每日一道 LeetCode (53):最接近的三數之和

每天 3 分鐘,走上算法的逆襲之路。 前文合集 每日一道 LeetCode 前文合集 代碼倉庫 GitHub: https://github.com/meteor1993/LeetCode Gitee: https://gitee.c

原创 「補課」進行時:設計模式(1)——人人都能應該懂的單例模式

1. 引言 最近在看秦小波老師的《設計模式之禪》這本書,裏面有句話對我觸動挺大的。 設計模式已經誕近 20 年了,其間出版了很多關於它的經典著作,相信大家都能如數家珍。儘管有這麼多書,工作 5 年了還不知道什麼是策略模式、狀態模式、責任

原创 每日一道 LeetCode (52):三數之和

每天 3 分鐘,走上算法的逆襲之路。 前文合集 每日一道 LeetCode 前文合集 代碼倉庫 GitHub: https://github.com/meteor1993/LeetCode Gitee: https://gitee.c

原创 JVM 第六篇:極致優化 IDEA 啓動速度

本文內容過於硬核,建議有 Java 相關經驗人士閱讀。 1. 引言 相信做 Java 開發的同學,對 IDEA 這個工具應該都不陌生,即使不使用 IDEA 做開發,那麼對 Eclipse 這個工具應該也不會陌生,如果這兩個都不用的同學

原创 JVM 第五篇:命令行 JVM 故障處理工具

本文內容過於硬核,建議有 Java 相關經驗人士閱讀。 1. 引言 雖然我們前面介紹了各種圖形化 JVM 故障處理工具,但是很多情況下,我們在處理問題的時候並沒有圖形化的操作環境可以使用,這時候,就需要用到 JDK 爲我們提供的命令行

原创 JVM 第四篇:可視化 JVM 故障處理工具

本文內容過於硬核,建議有 Java 相關經驗人士閱讀。 1. 可視化工具 在 JDK 中爲我們提供了大量的 JVM 故障處理工具,都在 JDK 的 bin 目錄下: 這其中除了大量的命令行工具以外,還爲我們提供了更加方便快捷的可視化

原创 JVM 第三篇:Java 類加載機制

本文內容過於硬核,建議有 Java 相關經驗人士閱讀。 1. 什麼是類的加載? 類的加載指的是將類的 .class 文件中的二進制數據讀入到內存中,將其放在運行時數據區的方法區內,然後在堆區創建一個 java.lang.Class 對

原创 JVM 第二篇:垃圾收集器以及算法

本文內容過於硬核,建議有 Java 相關經驗人士閱讀。 0. 引言 一說到 JVM ,大多數人第一個想到的可能就是 GC ,今天我們就來聊一聊和 GC 關係最大的垃圾收集器以及垃圾收集算法,希望能通過本篇文章,讓各位同學對 GC 有一

原创 Tomcat 第六篇:類加載機制

1. 引言 Tomcat 在部署 Web 應用的時候,是將應用放在 webapps 文件夾目錄下,而 webapps 對應到 Tomcat 中是容器 Host ,裏面的文件夾則是對應到 Context ,在 Tomcat 啓動以後, we

原创 Tomcat 第五篇:請求處理流程(下)

1. 請求處理流程 AprEndPoint 順着上一篇接着聊,當一個請求發送到 Tomcat 以後,會由連接器 Connector 轉送至 AprEndPoint ,在 AprEndPoint 中調用了 startInternal() 方

原创 Tomcat 第四篇:請求處理流程(上)

1. 引言 既然是在講 Tomcat ,那麼一個 HTTP 請求的請求流程是無論如何也繞不開的。 首先拋開所有,使用我們現有的知識面,猜測一下一個請求被 Tomcat 處理的過程: 1. 客戶端(瀏覽器)發送一個請求(HTTP) 2. 建

原创 每日一道 LeetCode (51):盛最多水的容器

每天 3 分鐘,走上算法的逆襲之路。 前文合集 每日一道 LeetCode 前文合集 代碼倉庫 GitHub: https://github.com/meteor1993/LeetCode Gitee: https://gitee.c

原创 每日一道 LeetCode (50):字符串轉換整數 (atoi)

每天 3 分鐘,走上算法的逆襲之路。 前文合集 每日一道 LeetCode 前文合集 代碼倉庫 GitHub: https://github.com/meteor1993/LeetCode Gitee: https://gitee.c