原创 策略模式及使用Spring實現策略模式+工廠模式

一、策略模式 策略模式定義了一組算法,將每個算法都封裝起來,並且使它們之間可以互換 1、策略模式主要角色 主要角色如下: 封裝角色(Context):也叫做上下文角色,起承上啓下封裝作用,屏蔽高層模塊對策略、算法的直接訪問,封

原创 Java業務開發常見錯誤100例筆記

一、多線程相關 1、ThreadLocal ThreadLocal適用於變量在線程間隔離,而在方法或類間共享的場景 程序運行在Tomcat中,執行程序的線程是Tomcat的工作線程,而Tomcat的工作線程是基於線程池的。線程池會

原创 面試中所談的項目中的亮點

前言 我是從18年11月份入職的,一直做的是Java開發,起初和大部分人一樣都是CRUD,直到去年年底一個小項目讓我做了技術經理,雖然我在項目上受到了比較大的打擊(做己方的話如果真的遇到一個很難對付的甲方簡直讓人崩潰),但也確實讓

原创 開發中常用Java8日期和時間相關API

1、獲取某天的開始時間 /** * 獲取某天的開始時間 * * @param zonedDateTime * @return */ public static Zo

原创 GitLab CI腳本編寫

1、GitLab CI腳本基本語法 GitLab CI Runner常用的有兩種,一種是Shell的,另一種是Docker的,採用Docker Runner的話需要指定具體鏡像,腳本中可以通過tags指定執行該作業的Runner

原创 K8S的架構及工作原理

1、Master和Node 1)、Master K8S中的Master是集羣控制節點,負責整個集羣的管理和控制 在Master上運行着以下關鍵進程: kube-apiserver:提供了HTTP Rest接口的關鍵服務進程,是

原创 記錄變更日誌:比較兩個對象並獲取其中不相等的字段

業務需求 對比原單據和變更後的單據生成變更日誌,即哪些字段發生了變更並且記錄變更前和變更後的值 工具類 由於對比的字段較多,所以就想封裝一個統一的工具類來使用,最初一版參考網上的一些資料封裝了一個工具類,方法返回Map,key爲屬

原创 Redis複習(一):Redis數據類型、底層數據結構、過期鍵刪除策略、內存回收策略、RDB和AOF、Redis Pipeline、事務

一、Redis數據類型 類型 特性 string(字符串) 二進制安全的,可以包含任何數據,一個鍵最大能存儲512M list(列表) 雙向鏈表,按照插入順序排序,可以從鏈表兩端進行push和pop操作 ha

原创 《計算機網絡-第7版-謝希仁》學習筆記:數據鏈路層

一、數據鏈路層 主機H1向H2發送數據 路由器在轉發分組時使用的協議棧只有下面的三層,數據進入路由器後要先從物理層上到網絡層,在轉發表中找到下一跳的地址後,再下到物理層轉發出去 數據鏈路層使用的信道主要有以下兩種類型: 點對

原创 《計算機網絡-第7版-謝希仁》學習筆記:網絡層

二、網絡層 1、網絡層提供的兩種服務 網絡層向傳輸層提供虛電路服務和數據報服務 虛電路服務: 虛電路表示這只是一條邏輯上的連接,H1發送給H2的所有分組都沿着同一條虛電路傳送 數據報服務: H1發送給H2的分組可能沿着不同路徑

原创 二刷Java多線程:Java併發包中鎖詳解(一):抽象同步隊列AQS

前言 在之前學習Java多線程的過程中,我對於Java併發包中鎖相關實現原理這塊知識一直是一知半解。在這次二刷Java多線程的過程中,對這塊的知識慢慢有了自己的理解,個人認爲學習這塊內容的學習路線很重要,下面來分享一下我個人認爲比

原创 二刷Java多線程:Java併發包中線程同步器詳解(CountDownLatch、CyclicBarrier、Semaphore)

一、等待多線程完成的CountDownLatch 1、案例介紹 public class CountDownLatchDemo { private static CountDownLatch countDownLatch

原创 Mac VirtualBox設置虛擬機網絡

點擊工具,選擇網絡,創建新的網卡 在虛擬機上設置網絡,設置兩張網卡,一張是nat網絡,用於連接外部網絡。另一個是host-only網絡,使用的是之前配置好的vboxnet設置 這兩張網卡可以確保虛擬機可以連接外網,同時可以在

原创 Spring常見面試知識點

1、談談對Spring IOC的理解?談談對Spring DI的理解? IOC反轉控制:將之前程序中需要手動創建對象的操作,交由Spring框架來實現,創建對象的操作被反轉到了Spring框架。對象的生命週期由Spring來管理,

原创 SpringBoot自定義事件發佈

1、自定義事件 Spring中自定義事件需要繼承ApplicationEvent /** * 自定義事件,繼承ApplicationEvent */ @Data public class MailSendEvent exten