原创 Java線程的狀態到底一共多少個

Java線程的狀態一共有過少個網上衆說紛紜,5-7個不等,到底一共是多少個呢?打開java.lang.Thread源碼,搜索關鍵字“State”,我們可以發現jdk給出的線程狀態(是個枚舉)一共有6個。Java線程究竟有沒有就緒和運行狀態

原创 關於Java線程中this.getName()和Thread.currentThread().getName()區別的深入分析

本文爲本人原創,轉載請標明出處。 先看測試代碼和運行結果: 問題的焦點在於運行結果標註的三個位置,爲什麼會是這三種結果? 分析: 逐個來看,先看運行結果1爲什麼是Thread-0。首先,子類的構造函數如果沒有顯式地指定調用父類的哪個構造

原创 軟件設計原則之第一篇——開閉原則(OCP)

  這篇是軟件設計原則系列文章的第一篇,之前寫過一篇博客裏面介紹了七種設計原則,但是將七種原則容納到一篇文章之中總感覺哪裏不對:說的太多文章就會變得冗長影響閱讀體驗,說的太少總感覺有的話沒說完就進行下一項了,於是乎本人突發奇想爲何不分開

原创 HashMap原理(一)

目錄 HashMap的底層數據結構 爲什麼默認初始大小爲16以及爲什麼默認加載因子爲0.75 爲什麼MashMap的容量是2的N次冪 HashMap的hash值是怎麼算出來的,爲什麼這麼算 HashMap的put()過程   一、Hash

原创 HashMap原理(二)——jdk1.8中HashMap擴容底層代碼和算法分析

這次給大家帶來的是HashMap原理第二篇之——HashMap擴容的底層代碼和算法分析。需要說明的是本文是基於jdk1.8來進行展開的,今後有機會會和大家分享在jdk1.7中HashMap的實現方式和1.8有哪些區別(擴容方式是其中的區別

原创 SpringBoot啓動後不報任何錯誤自動停止

在啓動SpringBoot時後臺日志沒有報出任何異常或者錯誤然後就自動停止了,啓動日誌如下: 查看紅框框出來的日誌時西東shutdown了,解決方法如下: 在maven的pom文件裏面加入依賴: <dependency>      <g