原创 dubbo基礎(二)——dubbo簡單demo

get start 在上一篇中介紹了dubbo誕生的背景和框架的特性:dubbo概念和基本概念,這裏就來一個dubbo的簡單使用小體驗。 dubbo註冊中心安裝 dubbo中的官方文檔的快速啓動使用的是multicast廣播註冊中心暴

原创 設計模式——裝飾者模式

裝飾者模式 裝飾者模式是java IO流中使用的一個經典模式,本文會簡單介紹裝飾者模式的原理和解決的問題,並且以一個咖啡demo來演示裝飾者模式。 裝飾者模式的定義 裝飾者模式遵守的設計原則:開閉原則(類應該支持擴展,而拒絕修改)

原创 一次排查$jacocoData的過程

起因 最近在開發過程中,遇到了一個奇怪的現象,在測試環境去利用反射拿一個類的字段時,發現拿到的field數組中多了一個奇怪的變量:$jacocoData,是一個static的boolean數組: 很明顯jacoco這種統計代碼覆蓋

原创 dubbo基礎(一)——dubbo的整體簡介

入門 dubbo是公司選擇rpc框架時首先會去選擇的框架,好好了解dubbo框架是一個合格程序員的必經之路。這裏作爲dubbo的入門篇,把一些概念和官方文檔搞清楚一定是最應該開始的步驟。 dubbo框架誕生的背景 隨着互聯網的發展,

原创 使用telnet測試dubbo接口初使用

背景 dubbo接口的測試不像controller的http接口那麼容易測試,這裏去了解了下使用telnet去測試參數沒那麼複雜的dubbo接口。 正題 首先看看一個dubbo接口的代碼: public interface Shop

原创 《併發編程藝術》中的線程狀態

線程的狀態 線程的狀態很早之前就理解過了,最近翻《併發編程藝術》的書時候,看到有個點之前理解的不太對。 書中的線程狀態分類 new 初始狀態,線程被構建,但是還沒有調用start()方法 runnable 運行狀態,java中將操作

原创 併發編程——Thread API

這篇主要介紹Thread API,也是併發編程中的基礎 Thread一些常用API 守護線程 守護線程的概念和原理可以見:守護線程和非守護線程 守護線程的一個應用: 比如在做長連接的時候,需要一個心跳檢查線程,這個線程就應

原创 併發編程——基礎拾遺

併發編程基礎拾遺 在看併發的書或者看併發相關的博客時,會發現一些知識點會遺漏或者之前沒有看到,這裏去總結一下。 創建線程相關 main線程 我們通常會通過寫main方法去創建多個線程,main線程是非守護線程,代表方法的入口。這個時

原创 設計模式——模板方法的一個應用

模板方法 模板方法 很多情況下代碼中的業務都可以抽象出一個模板去解決,這時候經常需要用到模板方法。大家經常接觸到的是一些業務方法的抽象模板,比如在計算優惠券的流程當中總是有一定的步驟: (1)先計算該商品是否可以擁有優惠券信息 (2)

原创 設計模式——觀察者模式

觀察者模式 觀察者模式也是我們經常會用到的設計模式之一,這裏用一個氣象站的一些數據變化通知氣象板爲例去記錄一下觀察者設計模式,值得一提的是java中提供了觀察者模式的接口和類。 demo 一個氣象站通知氣象板的小demo,氣象站提供

原创 深拷貝和淺拷貝

深拷貝與淺拷貝 對對象的深拷貝和淺拷貝我們並不陌生。 (1)淺拷貝: 在淺拷貝中,如果原型對象的成員變量是值類型,將複製一份給克隆對象;如果原型對象的成員變量是引用類型,則將引用對象的地址複製一份給克隆對象,也就是說原型對象和克隆對

原创 java集合類的一些總結——Arrays.asList和Guava操作集合

使用背景 總結一下最近項目中使用到集合的兩個點,一個是Arrays.asList這個方法使用的坑,另一個是利用Guava的Sets工具類去求並交集。 使用總結 Arrays.asList的坑 先上結論: Arrays.asList這

原创 ClassNotFoundException和NoClassDefFoundError

背景 極客時間上《Java核心技術36講》第二講中提到了一個問題:ClassNotFoundException和NoClassDefFoundError有什麼區別?看到這個問題的時候,第一時間想到的就是一個是受檢的異常,而另一個是一個

原创 Java36講總結(一)——Java平臺型的理解

背景 最近看了一點點極客時間上的《Java核心技術36講》,打算把一些自己感興趣或者不知道的點總結到博客中,方便對一些知識有一些整理和拾遺。 Java平臺性的理解 java本身是一種面向對象的語言,有兩個特徵,一是“write onc

原创 併發編程——併發基礎:守護線程和非守護線程

前言 最近在複習的時候,發現一個運行線程池拒絕策略demo中的main方法在運行了之後,進程並沒有關閉。看了jconsole線程池中的線程都處於waiting狀態。這裏是跟我設置線程池的線程工廠中的設置線程是否爲後臺線程有關。 後臺線