原创 【多線程】線程獲取共享資源時的無鎖、偏向鎖、輕量級鎖、重量級鎖,以及它們是如何升級的呢?

鎖一共有4種狀態,級別從低到高依次是:無鎖狀態、偏向鎖狀態、輕量級鎖狀態和重量級鎖狀態,這幾個狀態會隨着競爭情況逐漸升級。鎖可以升級也可以降級,不過降級的條件特別苛刻,當JVM進入安全點(SafePoint) 的時候, 會檢查是否

原创 【多線程】結合例子理解happens-before含義以及其規則

Happens-Before 並不是說前面一個操作發生在後續操作的前面, 它真正要表達的是: 前面一個操作的結果對後續操作是可見的。 一、理解happens-before 1、如果⼀個操作happens-before另⼀個操作,那

原创 【多線程】Java中的volatile到底起着什麼樣的作用呢

當聲明共享變量爲volatile後,對這個變量的讀/寫將會很特別。那麼它到底起着怎樣的作用呢? 一、可見性 可見性指的是線程之間的可見性,一個線程修改的狀態對另一個線程是可見的。也就是一個線程對一個volatile變量的讀,總是能

原创 【Redis】Redis是什麼,又能用來做什麼呢

Redis是完全開源免費的,用C語言編寫的,遵守BSD協議,是一個高性能的(key/value)分佈式內存數據庫,基於內存運行並支持持久化的NoSQL數據庫,是當前最熱門的NoSql數據庫之一,也被人們稱爲數據結構服務器。 red

原创 【Redis】Redis如何搭建與啓動,以及如何設置開機自啓

redis一般都是裝在Linux系統上的,雖然後期有人在這個基礎上開發了再Windows上使用的redis,但如果項目上使用,最好還是將redis裝在Linux比較好,因爲redis本身就是支持在Linux上的。 首先要下載r

原创 【多線程】Java線程間是如何通信的呢?

線程間的通信一、共享內存機制(1)同步--synchronized(2)信號量 --volatile二、等待/通知機制(wait/notify)三、管道 線程開始運行,擁有自己的棧空間,那多個線程如何相互配合完成工作,這就涉及到了

原创 Chrome添加Vue插件

現在很多前端項目,用的是Vue,那麼我們在瀏覽器調試的時候,使用Vue插件,更便於我們調代碼。下邊我介紹一下在Chrome中添加Vue插件。 1、https://github.com/vuejs/vue-devtools 選擇

原创 【數據結構與算法】順序隊列與鏈式隊列及其實現

關於隊列,我們先想一個生活中的例子,就是排隊買票,先來的先買,後來的只能站在隊尾,先進者先出,這就是典型的隊列結構。 隊列是一種限制訪問點的線性表。隊列的元素只能從表的一端插入,另一端刪除。允許刪除的一端稱爲隊頭,另一端,也就

原创 【數據結構與算法】二維數組與稀疏數組的相互轉化

什麼情況下使用稀疏數組 當一個數組中大部分元素爲0,或者爲同一個值的數組時,可以使用稀疏數組來保存該數組。 稀疏數組的處理方法 (1)記錄數組一共有幾行幾列,有多少個不同的值 (2)把具有不同值的元素的行列及值記錄在一個小規模的數

原创 ssm中的springmvc項目啓動,解決沒有Tomcat Server和Artifact的問題

項目啓動主要過程 1、Edit Configurations,添加啓動本項目的Tomcat Server(若沒有,請下邊的參考解決方法一) 2、接着進行配置Deployment,選擇Artifacts(若有Artifacts,選

原创 【Spring】面向切面編程AOP的簡單理解及實現

AOP,面向切面編程,利用AOP可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發的效率。 AOP的主要功能:權限控制、事務管理 、日誌打印、性能統計、異常處理等 AOP的

原创 【數據結構與算法】用數組模擬實現環形隊列

在之前的實踐中,已經使用數組實現了隊列,但是其有缺陷,就是數組只能使用一次,由此提出改進,用數組模擬實現環形隊列 隊列 隊列是一個有序列表,可以用數組或是鏈表來實現 隊列遵循先入先出的原則 隊列的輸出輸入分別從前後端處理,因此

原创 Consider defining a bean of type 'com.cxh.common.service.OrderService' in your configuration.怎麼解決呢

我們有時運行項目會出現Field orderService in com.cxh.consumer.web.OrderController required a bean of type ‘com.cxh.common.servi

原创 【SpringCloud】註冊中心Eureka是什麼呢,先從理論認識Eureka

一、首先爲什麼會有Eureka呢? 是因爲,服務提供者對外提供服務,需要對外暴露自己的地址,而服務消費者需要記錄服務提供者的地址。一但地址發生變化,需要人爲管理地址,爲開發測試及上線帶來極大的困難。所有有了Eureka,它可以管理

原创 【Spring】控制反轉IOC與依賴注入DI的簡單理解及實現

控制反轉IOC 它就是將bean的對象交給Sping容器進行管理 主要用的是反射機制(初始化)——創建對象 解析xml demo4J 可以降低耦合度 簡單理解呢,就是,我們之前獲取一個對象,是通過new來獲取的,比如有一個U