總結(jié)

1.spring IOC/AOP/MVC

? spring是一個(gè)輕量級(jí)框架隧饼,IOC控制反轉(zhuǎn)降低耦合度鹏秋,AOP可以把應(yīng)用業(yè)務(wù)和系統(tǒng)服務(wù)分開干毅,MVC是一個(gè)非常常用的WEB框架循未。

? IOC:

控制反轉(zhuǎn)是一種在軟件工程中解耦合的思想岸浑,調(diào)用類只依賴接口搏存,而不依賴具體的實(shí)現(xiàn)類,減少了耦合矢洲。

控制權(quán)交給了容器璧眠,在運(yùn)行的時(shí)候才由容器決定將具體的實(shí)現(xiàn)動(dòng)態(tài)的“注入”到調(diào)用類的對(duì)象中。

原先我們要使用一個(gè)類的方法读虏,需要new一個(gè)對(duì)象责静,然后再用這個(gè)對(duì)象去調(diào)方法,但是項(xiàng)目中類太多了盖桥,每個(gè)都去new很麻煩灾螃。

? ? 用IOC的話,把我們自己需要實(shí)例化的對(duì)象交給spring處理揩徊,這個(gè)時(shí)候?qū)嵗瘜?duì)象的權(quán)利就被spring所擁有腰鬼,這個(gè)過程就是控制反轉(zhuǎn)。

IOC是目的塑荒,DI是手段熄赡,DI可以作為IOC的一種實(shí)現(xiàn)方式。

? AOP:

面向切面編程齿税,實(shí)現(xiàn)一些與業(yè)務(wù)無關(guān)的功能彼硫,例如:異常處理、日志記錄凌箕。

AOP代理就是AOP框架通過代理模式創(chuàng)建的對(duì)象拧篮,Spring使用JDK動(dòng)態(tài)代理或CGLIB代理來實(shí)現(xiàn),Spring缺省使用JDK動(dòng)態(tài)代理來實(shí)現(xiàn)牵舱,

從而任何接口都可別代理串绩,如果被代理的對(duì)象實(shí)現(xiàn)不是接口將默認(rèn)使用CGLIB代理,不過CGLIB代理當(dāng)然也可應(yīng)用到接口仆葡。

AOP代理的目的就是將切面織入到目標(biāo)對(duì)象

? MVC:DispatcherServlet-->HandlerMapping-->HandlerAdapter-->ModelAndView-->ViewResolver


? 用到的設(shè)計(jì)模式:

1.工廠模式:Spring中的FactoryBean就是典型的工廠方法模式

2.策略模式:定義一系列的算法赏参,把它們一個(gè)個(gè)封裝起來志笼,并且使它們可相互替換。本模式使得算法可獨(dú)立于使用它的客戶而變化(SimpleInstantiationStrategy)

3.模板模式:JdbcTemplate執(zhí)行execute方法

4.單例模式:spring的BeanFactory

5.適配器模式:Spring中用到的包裝器模式在類名上有兩種表現(xiàn):一種是類名中含有Wrapper把篓,另一種是類名中含有Decorator纫溃。

? 基本上都是動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)

6.代理模式:Spring的Proxy模式在aop中有體現(xiàn),比如JdkDynamicAopProxy和Cglib2AopProxy

7.觀察者模式:Spring中Observer模式常用的地方是listener的實(shí)現(xiàn)韧掩。如ApplicationListener;

2.內(nèi)存模型/JVM/GC

? 計(jì)算機(jī)的內(nèi)存模型是: cup通過寄存器訪問高速緩存然后再訪問內(nèi)存

? Java的內(nèi)存模型JMM:

JMM定義了線程和主內(nèi)存之間的抽象關(guān)系:線程之間的共享變量存儲(chǔ)在主內(nèi)存(main memory)中紊浩,

每個(gè)線程都有一個(gè)私有的本地內(nèi)存(local memory),本地內(nèi)存中存儲(chǔ)了該線程以讀/寫共享變量的副本疗锐。

本地內(nèi)存是JMM的一個(gè)抽象概念坊谁,并不真實(shí)存在。它涵蓋了緩存滑臊,寫緩沖區(qū)口芍,寄存器以及其他的硬件和編譯器優(yōu)化。


? JVM:

主要包括:虛擬機(jī)棧雇卷、方法區(qū)鬓椭、堆、本地方法棧关划、程序計(jì)數(shù)器

1小染、程序計(jì)數(shù)器:可以看成是當(dāng)前線程執(zhí)行的字節(jié)碼的行號(hào)指示器。字節(jié)碼解釋器工作時(shí)贮折,就是通過改變這個(gè)計(jì)數(shù)器的值來選取下一步要執(zhí)行的字節(jié)碼指令裤翩,分支、循環(huán)调榄、跳轉(zhuǎn)踊赠、異常

? 等都要依賴這個(gè)計(jì)數(shù)器。

2振峻、Java虛擬機(jī)棧:是線程私有的臼疫,他的生命周期和線程相同择份。

? 它是Java方法執(zhí)行的內(nèi)存模型:每個(gè)方法執(zhí)行的同時(shí)都會(huì)創(chuàng)建一個(gè)棧幀用于存儲(chǔ)局部變量扣孟、操作數(shù)棧、動(dòng)態(tài)鏈接荣赶、方法出口等信息凤价。

3、本地方法棧則為虛擬機(jī)棧使用到的Native方法服務(wù)

4拔创、堆:

? 是所有線程共享的內(nèi)存區(qū)域利诺,在虛擬機(jī)創(chuàng)建時(shí)創(chuàng)建∈T铮可以分為新生代慢逾、老年代立倍、永久代,侣滩。

? 新生代:大多數(shù)對(duì)象在新生代中被創(chuàng)建口注,其中很多對(duì)象的生命周期很短.又可以分為Eden空間,survivor from/to 占比為8:1:1

? Java8中去掉了老年代君珠、增加了元空間寝志。

5、方法區(qū):

? 也是各個(gè)線程共享的內(nèi)存區(qū)域策添,用于存儲(chǔ)已被虛擬機(jī)加載的類信息材部、常量、靜態(tài)變量唯竹,即時(shí)編譯器編譯的代碼等數(shù)據(jù)乐导。

Xms 是指設(shè)定程序啟動(dòng)時(shí)占用內(nèi)存大小。一般來講浸颓,大點(diǎn)兽叮,程序會(huì)啟動(dòng)的快一點(diǎn),但是也可能會(huì)導(dǎo)致機(jī)器暫時(shí)間變慢猾愿。

Xmx 是指設(shè)定程序運(yùn)行期間最大可占用的內(nèi)存大小鹦聪。如果程序運(yùn)行需要占用更多的內(nèi)存,超出了這個(gè)設(shè)置值蒂秘,就會(huì)拋出OutOfMemory異常泽本。

Xss 是指設(shè)定每個(gè)線程的堆棧大小。這個(gè)就要依據(jù)你的程序姻僧,看一個(gè)線程大約需要占用多少內(nèi)存规丽,可能會(huì)有多少線程同時(shí)運(yùn)行等。

? GC

新生代:對(duì)象生命周期很短撇贺,用的復(fù)制算法

老年代:對(duì)象存活率高使用“標(biāo)記-清理”或“標(biāo)記-整理”算法赌莺。



3.集合


4.多線程/鎖

5.單點(diǎn)登錄

6.數(shù)據(jù)庫

7.設(shè)計(jì)模式

8.Redis

9.分布式/dubbo/mq

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市松嘶,隨后出現(xiàn)的幾起案子艘狭,更是在濱河造成了極大的恐慌,老刑警劉巖翠订,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巢音,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡尽超,警方通過查閱死者的電腦和手機(jī)官撼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來似谁,“玉大人傲绣,你說我怎么就攤上這事掠哥。” “怎么了秃诵?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵龙致,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我顷链,道長(zhǎng)目代,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任嗤练,我火速辦了婚禮榛了,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘煞抬。我一直安慰自己霜大,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布革答。 她就那樣靜靜地躺著战坤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪残拐。 梳的紋絲不亂的頭發(fā)上途茫,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音溪食,去河邊找鬼囊卜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛错沃,可吹牛的內(nèi)容都是我干的栅组。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼枢析,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼玉掸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起醒叁,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤司浪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后辐益,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體断傲,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年智政,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箱蝠。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡续捂,死狀恐怖垦垂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牙瓢,我是刑警寧澤劫拗,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站矾克,受9級(jí)特大地震影響页慷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胁附,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一酒繁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧控妻,春花似錦州袒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至菇存,卻和暖如春夸研,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背依鸥。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工陈惰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人毕籽。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓抬闯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親关筒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子溶握,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容