原创 springboot通過IDEA生成可執行的jar包(動態圖詳細流程)

第一步 第二步 第三步 第四步 第五步 第六步

原创 spring boot通過自定義註解和AOP攔截指定的請求

本文主要通過切面類和自定註解的方式,攔截指定的接口(代碼中已經作了詳細的說明) 目錄 一 準備工作 二 自定義註解 三 切面類 四 Controller類 五 測試結果  六 源碼地址 一 準備工作 1.1 添加依賴 通過spring b

原创 Java觀察者模式&事件委託(通過dota和王者榮耀故事講解)

故事情景  首先介紹下故事的三位同學,阿顧、蛋蛋和洋洋,蛋蛋,洋洋喜歡玩遊戲,但是又生怕班主任回來了被抓到,所以他們就找到了阿顧同學幫他們把風,但是阿顧同學不是誰都通知的,只有到阿顧那裏登記的,阿顧同學纔會通知這些登記的人,下面我們來模

原创 異常:window不能再本地計算機啓動MongoDB

啓動mongoDB服務時,出現以下異常 window不能再本地計算機啓動MongoDB 解決辦法: 1. 刪除文件  D:\DevelopSoft\MongoDb\data\db下的mongod.lock和storage.bson文件

原创 Java三個線程循環打印

先上效果圖:    目錄 資源 測試 資源 這裏用了condition 執行流程:線程1執行完,讓線程2醒來工作;線程2執行完,讓線程3醒來工作;線程3執行完,讓線程1醒來工作 原理(都是按最壞的情況分析): ①一開始3個線程搶鎖,如果

原创 java單例模式(性能高且線程安全)

本文通過線程不安全、線程安全、線程安全並性能高三個方面分析單例模式,一步步優化代碼,如果有問題可以留言交流(第3個方法作了詳細的說明) 目錄 1.線程不安全 2.線程安全 3.線程安全並且性能高 1.線程不安全 此單例模式爲懶漢單例,併發

原创 Java設計一個高性能緩存模型(兩種方法)

本文從線程不安全、線程安全、高性能三個方面一步步優化緩存模型,如果有疑問或者寫的不好的地方可以留言溝通 1. 緩存模型(線程不安全) import java.util.HashMap; import java.util.Map; pu

原创 Java代碼解決生產者---消費者問題

目錄   1.資源 2.消費者 3.生產者 4.測試 1.資源 public class Resource { //當前資源的數量 int num = 0; //當前資源的上限 int size = 1

原创 html+angularjs+redis獲取後臺數據模擬京東/天貓的商品分類導航

文章中一些詳細的說明,會在代碼中用註釋的方式解釋,如果有疑問或者寫的不好的地方可以留言交流 先上效果圖(文末會附上源碼):  目錄 一 數據庫表結構 二 實體類設計  三 後端代碼 3.1 數據訪問層 3.2 redis屬性文件 3.3

原创 SMM框架 基礎簡單的SSM搭建過程

各位童鞋,本文主要搭建SSM框架(Spring,SpringMVC,MyBatic),希望能幫助到剛剛學習這些框架的小夥伴,以及能夠直接上手實現業務,代碼中都做了詳細的說明。廢話不多說,下面直接進入主題(文末會附上源碼地址) 目錄 一 創

原创 echarts+ajax動態獲取後端數據

效果圖: 下面從前端和後端來講解(如果有些地方描述的不是很好或者不夠詳細,可以留言交流) 目錄 一 前端 1.1 引入js文件 1.2 準備容器 1.3 日期控件和按鈕 1.4 異步請求 1.5 前端完整代碼 二、後端 2.1 Cont

原创 實現一個棧,要求pop push getMin的時間複雜度都是O(1)【圖解流程】

完整題目: 實現一個特殊的棧,在實現棧的基本功能的基礎上,再實現返回棧中最小元素的操作。 【要求】 1. pop(彈棧)、push(入棧)、getMin操作的時間複雜度都是O(1) 2. 設計的棧類型可以使用現成的棧結構 實現思路 1.首

原创 數組模擬棧和隊列(圖解流程)

  一 數組模擬棧 棧(stack),它是一種運算受限的線性表。這種限制是僅允許在表的一端進行插入和刪除運算。這一端被稱爲棧頂,相對地,把另一端稱爲棧底,向一個棧中插入新元素,我們一般稱爲入棧或者壓棧,從一個棧中刪除元素,我們一般稱爲彈棧

原创 異常 Access denied for user 'root'@'localhost' (using password: YES)

異常信息如下: 這個異常問題找了半天,各種打印語句排查,最後定位到只mysql出問題,發現是密碼多了個空格 小夥伴們如果遇到同樣的問題,一定要看看用戶名或密碼後面有沒有多餘的空格

原创 快速排序(圖解詳細流程)

基本思想是:從一個數組中隨機選出一個數N,通過一趟排序將數組分割成三個部分,1、小於N的區域 2、等於N的區域 3、大於N的區域,然後再按照此方法對小於區的和大於區分別遞歸進行,從而達到整個數據變成有序數組。 圖解流程 下面通過實例數組進