原创 深入理解Java虛擬機第三章讀書筆記:HotSpot虛擬機中的各個垃圾收集器

1.前言 垃圾收集算法是內存回收的方法論,那麼垃圾收集器就是垃圾回收的具體實現。書中提到的HotSpot虛擬機所實現的所有垃圾收集器如圖所示,有連線的兩個垃圾收集器表示這兩種垃圾收集器可以搭配使用,垃圾收集器所處的區域表明它適用的區域,圖

原创 深入理解Java虛擬機第三章讀書筆記:垃圾回收算法

更正 之前寫這篇筆記的時候我對標記-清除算法的理解好像有些偏差,最近複習筆記的時候發現之前描述的那個過程好像容易造成誤解,因爲是個人學習筆記,我就不在正文中修改了,方便自己以後回看。 我重新總結一下標記-清除算法的過程: 如果對象通過可達

原创 線程安全和鎖

1、進程與線程的概念 先來複習一下操作系統中所講的進程、線程這兩個概念: 進程:是併發執行的程序在執行過程中分配和管理資源的基本單位,是一個動態概念,競爭計算機系統資源的基本單位。 線程:是進程的一個執行單元,是進程內可調度實體。比進程更

原创 線程池類ThreadPoolExecutor解析

1、使用線程池的好處 線程使應用能夠更加充分合理地協調利用CPU、內存、網絡、I/O等系統資源。線程的創建需要開闢虛擬機棧、程序計數器、本地方法棧等線程私有的內存空間。在線程銷燬時需要回收這些資源。頻繁地創建和銷燬線程會浪費大量的系統資源

原创 常見的幾種Java設計模式

目錄 1、什麼是設計模式?設計模式有什麼用? 2、設計模式應該遵循的面向對象設計原則 3、設計模式的六大原則 4、設計模式的四種類型(包括J2EE設計模式) 5、幾種常見的設計模式 5.1、工廠模式 5.2、抽象工廠模式 5.3、單例模式

原创 使用SimpleDateFormat進行日期格式轉換時遇到的問題

最近寫代碼的時候,使用了SimpleDateFormat對Date進行格式轉換,剛開始我是這樣寫的: SimpleDateFormat sdf = new SimpleDateFormat("HH:MM:SS"); 這樣寫乍一看似乎沒有

原创 通過Spring Cloud Gateway轉發WebSocket實現消息推送

前言 最近被安排做一個消息推送的實驗性方案,在網上沒有找到比較合適業務的架構方案,最後弄出了一個勉強還能用的小示例(只適合自己實驗做着玩,完全不能上生產環境),這裏我對這個小示例做下總結,順便鞏固下最近學的一系列知識。在文章的最後我會放上

原创 Git的學習和使用(一:基礎概念部分)

前言 今天是五一假期的第一天,突然想起來應該對最近工作中遇到的一個非常讓我頭痛的問題進行一下深入的學習和探索。這個問題是什麼呢?就是git的使用。雖然以前自己做項目的時候也用過git,但是那時候對git的使用很淺,只要是push succ

原创 排序算法總結

1、冒泡排序 1.1、冒泡排序的基本思想 從無序隊列的頭部開始(當然也可以從尾部開始,兩兩比較,將最小的數交換到隊首),從前往後,將相鄰的兩個數進行兩兩比較,根據大小交換位置,將最大的數交換到無序數列的隊尾,從而成爲有序數列的一部分。下一

原创 MySql學習筆記

1、常見的MySql引擎 1.1、什麼是MySql引擎? 數據庫引擎是用於存儲、處理和保護數據的核心服務。利用數據庫引擎可控制訪問權限並快速處理事務,從而滿足企業內大多數需要處理大量數據的應用程序的要求。使用存儲引擎創建用於聯機事務或聯機

原创 Java設計模式學習筆記

1、什麼是設計模式?設計模式有什麼用? 設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式