原创 經典書刊推薦

《劍指offer》 《大話設計模式》 《mysql必知必會》 《程序員面試金典》 《java併發編程實戰》 《計算機操作系統第三版》 《計算機網絡》 《深入理解java虛擬機》 《java編程思想》 《Java數據結構和算法中文

原创 深入分析java對象克隆

目錄1.什麼是"克隆"?2.淺克隆與深克隆3.實現克隆的方法 1.什麼是"克隆"? 由一個現有對象A,複製生成一個新的對象B的過程(B的初始值是由A對象確定的)。 拷貝對象返回的是一個新對象,而不是一個引用。 拷貝對象與用 ne

原创 秒殺系統之超買問題詳解

目錄1.場景2. 方法3.總結 1.場景 假設現在庫存只有一個商品了,多線程下如何保證最後庫存是0而不是負數 2. 方法 MySQL中的排他鎖 update goods set num = num - 1 WHERE id =

原创 深入理解java序列化和反序列化

目錄1.定義2. 方法3.自定義的序列化和反序列化策略4. 爲什麼必須實現Serializable4.使用場景5. 總結 1.定義 Java序列化是指把Java對象轉換爲字節序列的過程; Java反序列化是指把字節序列恢復爲Ja

原创 快排之java實現

目錄場景實現方法1. 基準數法2. 三數取中法 場景 假設我們現在對“6 1 2 7 9 3 4 5 10 8”這個10個數進行升序排序 實現方法 1. 基準數法 首先在這個序列中隨便找一個數作爲基準數(不要被這個名詞嚇到了,就

原创 淺析樂觀鎖與悲觀鎖

目錄1. 定義2. 應用場景3. 悲觀鎖的劣勢4. 樂觀鎖 1. 定義 悲觀鎖:總是假設最壞的情況,每次去拿數據(讀數據)的時候都認爲別人會修改,所以每次在拿數據(讀數據)的時候都會上鎖,這樣別人想拿這個數據就會阻塞直到它拿到鎖

原创 java樂觀鎖之CAS原理解析

目錄含義原理分析CPU原語CAS缺陷ABA問題循環時間長開銷大只能對單個共享變量保證原子性操作 含義 CAS(CompareAndSwap) 即比較並替換,實現併發算法時常用到的一種技術。CAS操作包含三個操作數——內存位置、預期

原创 線程之我見(一)

目錄概念線程狀態NEW(初始狀態)定義實例RUNNABLE (就緒、執行中狀態)定義實例BLOCKED(阻塞狀態)定義實例 概念 是操作系統能夠進行運算調度的最小單位。 是進程中的實際運作單位。 是系統分配處理器時間資源的基本單

原创 mybatis源碼淺析①

創建SqlSessionFactory    讀取配置文件 /** * Class.getResource(String path) * 1、path不以’/'開頭時,默認是從此類所在的包下取資源;

原创 MySQL中的自增主鍵用完了怎麼辦

目錄 一場面試引發的血案。。。  引發的問題  解決方案 擴展 目前業內在線修改表結構的方案 使用mysql5.6+提供的在線修改功能 藉助第三方工具 改從庫表結構,然後主從切換 專業版回答 一場面試引發的血案。。。  面試官:"用過m

原创 nexus3私服使用

使用功能包括 代理中央倉庫、Snapshot包的管理、Release包的管理、第三方Jar上傳到Nexus上、從nexus下載依賴jar 代理中央倉庫 只要在PMO文件中配置私服的地址即可(獲取jar包信息走私服,然後私服保存的有中央倉庫

原创 redis面試連環炮

目錄 Redis 的通訊協議是什麼 Redis 究竟有沒有 ACID 事務 Redis 的樂觀鎖 Watch 是怎麼實現的 Redis 是如何持久化的 Redis 在內存使用上是如何開源節流 Redis 是如何實現主從複製 Redis 是

原创 Ubuntu殺手鐗命令

常用命令 Ubuntu GNOME快捷鍵 Ctrl+Alt+T (打開GNOME終端窗口) Alt+F1(顯示所有應用窗口。類似Windows中 Alt+Tab) Alt+F2(運行程序快捷鍵。類似Windows中Win+R

原创 創建非Web應用程序

  目錄 官方文檔 71.5 Create a non-web application 翻譯 71.5 創建非Web應用程序 官方文檔 71.5 Create a non-web application Not all Spring a

原创 SpringBoot 中怎麼禁用某些自動配置特性?

有 3 種方法。如果我們想禁用某些自動配置特性,可以使用 @EnableAutoConfiguration 或 @SpringBootApplication 註解的 exclude 屬性來指明。 // 方案1,下面的代碼段是使 Data