原创 設計模式中觀察者模式的學習

今天看到觀察者模式,感覺很有意思。 我認爲其核心理念就是,某個對象的某個動作,隨時在被其他對象監視,當進行這個動作的時候,其他對象的狀態也隨之改變。 網上的代碼大同小異。 規定對於被監視對象的本身,與其他監視對象的觀察者,都要去實現某種規

原创 設計模式中代理模式的學習

  從前在看代理模式的時候,經常是一頭霧水,和工廠模式相比,感覺這種模式很高深莫測,但是經過一段時間的開發,甚至用過很多反射模式之後。再來看代理模式,感覺也不是很難理解,以下是我對代理模式的學習過程。 對於代理,經過在網上學習了一段時間,

原创 選擇排序的學習筆記

一、原理 把基本的排序算法簡略的看了一遍,可以說選擇排序也是最容易理解的一個了 舉個例子,如果有一個長度爲10的未排序的數組 我們第一次遍歷數組,找到這10個數中最小的數,與第一個數交換(如果第一個數就是最小的數,默認自己與自己交換) 而

原创 volatile關鍵字個人理解

一、效果 1、保證代碼的可見性 保證被修飾的變量被修改時,直接跳過修改緩存,直接修改其主存值。 主存就相當於計算機中的物理內存,而CPU運算速度很高,所以在CPU中爲了同步數據,出現了CPU高速緩存。 舉例說明,如下圖代碼: int a

原创 CAS算法個人理解

一、描述 在日常的開發中,經常會出現多個線程去同時操作一個變量的情況。在這種情況下,我們經常會將此變量加上synchronized修飾符,來保證同一時間內只能有一個線程去訪問修改該變量,但這樣其他的縣城都必須掛起,效率非常低。所以出現了一

原创 Kafka+Storm+Hbase 流處理Demo

運行環境: 三臺Ubuntu16.04 Storm 1.2.2 Hbase 1.4.9 Kafka 2.11-2.1.1   所需的依賴: <dependencies> <dependency>

原创 正向代理與反向代理的學習筆記

在做JAVA WEB開發的過程中,經常要使用到Nginx來完成一個稱爲反向代理的工作,一直也沒去細究反向代理是什麼,更沒有去了解正向代理是什麼,經過簡短的學習來記錄一下自己對兩者的理解。   一、正向代理 根據網上的資料,我個人的理解爲,

原创 解決Springboot的WebSocket組件(即@ServerEndPoint)無法@Autowired的問題

最近有一個需求,前臺使用WebSocket請求後臺,後臺給其他頁面推送數據。 有這樣的需求,勢必要在我編寫的WebSocket層去調用我的Service層去訪問數據庫,於是我就寫出瞭如下的代碼: @ServerEndpoint(valu

原创 使用MD5加密確定前臺傳輸數據是否有效

1、前臺數據傳輸 當前臺給後臺傳輸數據時,除了最基本的參數,還需要傳輸一個根據參數以MD5形式生成的一個簽名。 例如參數爲: {"a" : 1, "b" : 2, "c" : 3} 那麼我們將數據拼成一個如下的字符串 a=1&b=2&c=

原创 關於Mybatis的緩存機制

一、問題原因 這些天在與朋友編寫業務邏輯的時候,發現了一個問題。當我們修改一個數據時,其他的數據也在跟着改變,研究了好久,才發現從地址上看,這些對象其實都是一個東西。但是他們都是從數據庫中查詢出來的,這個時候我們意識到Mybatis的緩存