1.設(shè)計(jì)方式 action->facade->biz->dao 好的Dubbo服務(wù)接口設(shè)計(jì),并非只是純粹的接口服務(wù)化 2.接口類型 簡(jiǎn)單的數(shù)據(jù)查詢接口:action.faca...

1.設(shè)計(jì)方式 action->facade->biz->dao 好的Dubbo服務(wù)接口設(shè)計(jì),并非只是純粹的接口服務(wù)化 2.接口類型 簡(jiǎn)單的數(shù)據(jù)查詢接口:action.faca...
一、前言 Redis除了可以存儲(chǔ)鍵還可以存儲(chǔ)常見的5種數(shù)據(jù)類型,分別是:String、List、Set、Hash、ZSet。對(duì)于Redis的命令有一部分是可以公用的,但是還有...
前言 原以為線程池還挺簡(jiǎn)單的(平時(shí)常用,也分析過原理),這次是想自己動(dòng)手寫一個(gè)線程池來(lái)更加深入的了解它;但在動(dòng)手寫的過程中落地到細(xì)節(jié)時(shí)發(fā)現(xiàn)并沒想的那么容易。結(jié)合源碼對(duì)比后確實(shí)...
Java反射機(jī)制經(jīng)常與注解搭配,出現(xiàn)在各大框架中,是框架的靈魂所在,貫穿了整個(gè)框架的構(gòu)成。在此對(duì)這兩個(gè)Java特性做一個(gè)總結(jié)。 反射 能夠分析類能力的程序成為反射(refle...
一個(gè)虛擬機(jī)是一個(gè)軟件實(shí)現(xiàn)物理機(jī)。Java是在WORA(Write Once Run Anywhere)基礎(chǔ)上開發(fā)的,它運(yùn)行在虛擬機(jī)上。該編譯器編譯Java文件轉(zhuǎn)換成一個(gè)Jav...
有感于知乎上的一篇關(guān)于程序員的討論,讓我突然之間心有戚戚然,最近一段時(shí)間有點(diǎn)江郎才盡的感覺,寫不了大的主題,就寫點(diǎn)小東西吧。 我們從知乎上面引用的這段小故事開始: 魏文王問扁...
一、Redis簡(jiǎn)介 Redis 是一個(gè)開源的內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),它可以用作數(shù)據(jù)庫(kù)、緩存和消息中間件。 它支持多種類型的數(shù)據(jù)結(jié)構(gòu),如字符串(Strings),散列(Has...
前言 隨著大型網(wǎng)站的各種高并發(fā)訪問、海量數(shù)據(jù)處理等場(chǎng)景越來(lái)越多,如何實(shí)現(xiàn)網(wǎng)站的高可用、易伸縮、可擴(kuò)展、安全等目標(biāo)就顯得越來(lái)越重要。為了解決這樣一系列問題,大型網(wǎng)站的架構(gòu)也在不...
前言 對(duì)于開發(fā)云原生分布式應(yīng)用程序的開發(fā)人員來(lái)說(shuō),他們應(yīng)該把更多的精力放在應(yīng)用程序和微服務(wù)上,而不是把時(shí)間浪費(fèi)在處理復(fù)雜的消息基礎(chǔ)設(shè)施上,他們需要一些解決方案幫助他們管理好這...
一臺(tái)Java服務(wù)器能跑多少個(gè)線程?這個(gè)問題來(lái)自一次線上報(bào)警如下圖,超過了我們的配置閾值。 打出jstack文件,通過IBM Thread and Monitor Dump A...
上周我和同事們簡(jiǎn)單地聊了聊我們工作中搞砸的那些事兒。如今早已不再犯那些錯(cuò)了,所以想起過去就覺得很好笑。但是笑歸笑,其實(shí)當(dāng)時(shí)犯的這些錯(cuò)讓我們受益頗深。 分享自己犯錯(cuò)的經(jīng)歷至關(guān)重...
眾所周知,反射是 Java 的一大利器,它可以做到許多看起來(lái)不可思議的事情,但是用得不好也會(huì)給我們的系統(tǒng)挖下許多坑。下面就介紹一個(gè)反射的黑科技,請(qǐng)充分理解并消化里面的知識(shí),并...
技術(shù)點(diǎn) 本文不是一個(gè)吹噓的文章,不會(huì)講很多高深的架構(gòu),相反,會(huì)講解很多基礎(chǔ)的問題和寫法問題,如果讀者自認(rèn)為基礎(chǔ)問題和寫法問題都是不是問題,那請(qǐng)忽略這篇文章,節(jié)省出時(shí)間去做一些...
分布式一致性 想象一下,我們有一個(gè)單節(jié)點(diǎn)系統(tǒng),且作為數(shù)據(jù)庫(kù)服務(wù)器,然后存儲(chǔ)了一個(gè)值(假設(shè)為X)。然后,有一個(gè)客戶端往服務(wù)器發(fā)送了一個(gè)值(假設(shè)為8)。只要服務(wù)器接受到這個(gè)值即可...
我現(xiàn)在是自己做,但我此前有多年在從事軟件開發(fā)工作,當(dāng)回過頭來(lái)想一想自己,覺得特別想對(duì)那些初學(xué)JAVA/.NET技術(shù)的朋友說(shuō)點(diǎn)心里話,希望你們能從我們的體會(huì)中,多少受點(diǎn)啟發(fā)(也...
雖然我們都知道有26個(gè)設(shè)計(jì)模式,但是大多停留在概念層面,真實(shí)開發(fā)中很少遇到,Mybatis源碼中使用了大量的設(shè)計(jì)模式,閱讀源碼并觀察設(shè)計(jì)模式在其中的應(yīng)用,能夠更深入的理解設(shè)計(jì)...
前語(yǔ)不要為了讀文章而讀文章,一定要帶著問題來(lái)讀文章,勤思考。 在 Web 開發(fā)中, 我們經(jīng)常需要校驗(yàn)各種參數(shù),這是一件繁瑣又重要的事情,對(duì)于很多人來(lái)說(shuō),在做參數(shù)校驗(yàn)的時(shí)候,會(huì)...
基本問題: 介紹下Java內(nèi)存區(qū)域(運(yùn)行時(shí)數(shù)據(jù)區(qū))。 Java對(duì)象的創(chuàng)建過程(五步,建議能默寫出來(lái)并且要知道每一步虛擬機(jī)做了什么) 對(duì)象的訪問定位的兩種方式(句柄和直接指針兩...