個(gè)人技術(shù)棧

目前知識(shí)列出了個(gè)人的技術(shù)棧包含的內(nèi)容,后續(xù)慢慢補(bǔ)充文章

1java基礎(chǔ)

1.1集合

1.1.1Arrays.sort實(shí)現(xiàn)原理

comparable&Comparator的區(qū)別

對于需要排序的集合或者數(shù)組不是單純數(shù)字型時(shí)帜消,通痴醴疲可以使用comparator或者comparble嘱丢,以簡單的方式實(shí)現(xiàn)對象排序或者自定義排序川无。

Comparator強(qiáng)行對某個(gè)對象collection進(jìn)行整體排序的比較函數(shù)裹纳,可以將comparator傳遞給collections.sort悦昵。一個(gè)類實(shí)現(xiàn)了Comparatable接口則表明這個(gè)類的對象之間是可以相互比較的歧斟,這個(gè)類對象組成的結(jié)合就可以直接使用sort方法排序纯丸。

Java 6中使用的是mergeSort,而在java 7中静袖,內(nèi)部實(shí)現(xiàn)換成TimSort觉鼻,而對對象間比較的實(shí)現(xiàn)要求更加嚴(yán)格。

Timsort屬于穩(wěn)定的排序算法队橙,最大的特點(diǎn)是充分利用數(shù)組中已經(jīng)存在的順序坠陈。

1.1.2foreach&while

foreach依賴Ienumerable ,for依靠下標(biāo)定位。在固定長度或者長度不需要計(jì)算的時(shí)候for效率高捐康;在不確定長度或計(jì)算有性能損耗的時(shí)候用foreach;使用foreach會(huì)鎖定集合中的對象仇矾,期間不能修改。

1.1.3arrayList & LinkedList

1.1.4hashMap/hashtable

1.1.5treemap

1.2Math及double\float精度問題

采用BigDecimal(String val)

1.3動(dòng)態(tài)代理

都實(shí)現(xiàn)了map接口解总,主要區(qū)別線程安全性贮匕、同步(synchoronization)、速度』ǚ悖現(xiàn)在多線程可以采用ConcurrentHashMap刻盐,其采用鎖分段技術(shù)

HashMap的迭代器為Iterator,HashTable的迭代器是Enumerator不是fail-fast劳翰,當(dāng)有其他線程改變hashMap的結(jié)構(gòu)(增加或者移除元素)會(huì)拋出ConcurrentModificationException

Map.Entry\Bucket

hashing的概念

HashMap中解決碰撞的方法,hashCode返回相同出現(xiàn)碰撞敦锌,盡量使用String、int不可變類

equals和hashCode的應(yīng)用及其重要性

不可變對象的好處

HashMap多線程的條件競爭

重新調(diào)整HashMap的大小

參考文章www.importnew.com/7099.html

1.4反射

1.5cloneable原理佳簸,深拷貝or淺拷貝

1.6java NIO使用

netty\mina

1.7線程池

1.種類及其區(qū)別

2.使用場景

3.實(shí)現(xiàn)原理和線程調(diào)度過程

4.如何優(yōu)化乙墙、調(diào)優(yōu)

5.最大線程數(shù)目根據(jù)什么調(diào)整

1.8鎖,ReentrantLock

mutex互斥

悲觀鎖溺蕉、樂觀鎖

2算法&數(shù)據(jù)結(jié)構(gòu)&設(shè)計(jì)模式

2.1海量URL去重問題(布隆過濾器)

2.2數(shù)組和鏈表數(shù)據(jù)結(jié)構(gòu)描述及其時(shí)間復(fù)雜度

2.3二叉樹遍歷

2.4快速排序

3JVM

3.1內(nèi)存模型

3.2GC

4JUC伶丐、并發(fā)相關(guān)

4.1Volitle

4.2CAS

4.3threadlocal的原理、作用疯特,使用注意

ThreadLocal線程變量副本哗魂,在Spring中管理Request作用域中的Bean、事務(wù)管理漓雅、任務(wù)調(diào)度录别、AOP等模塊都有出現(xiàn)朽色。

4.4ThreadPoolExecutor

4.5synchronized和lock的區(qū)別

4.6concurrenthashMap

4.7Fork/Join框架及其實(shí)現(xiàn)原理

5Spring

5.1AOP與IOC的實(shí)現(xiàn)原理

5.2MVC的原理

1.controller是單例還是多例?如何保證并發(fā)的安全组题。

5.3BeanFactory&FactoryBean的區(qū)別

5.4cglib如何實(shí)現(xiàn)對接口的實(shí)現(xiàn)進(jìn)行代理

5.5事務(wù)的傳播葫男、隔離級(jí)別,實(shí)現(xiàn)原理

5.6ThreadLocal在spring中的應(yīng)用

5.7Mybatis的底層實(shí)現(xiàn)

5.8Spring-boot的特性崔列、優(yōu)勢及其適用場景

5.9spring-cloud

配置梢褐、熔斷、路由等

5.10spring-security

5.11spring-session

5.12quartz&timer的對比

6分布式

6.1理論&原理

6.1.1一致性赵讯、2PC盈咳、3PC

一致性:相互獨(dú)立的節(jié)點(diǎn)之間如何達(dá)成一項(xiàng)決議的問題。常見的一致性問題:數(shù)據(jù)庫事務(wù)提交边翼、leader選舉鱼响、序列號(hào)生成等

一致性需要滿足的條件:agreement全認(rèn)同;validity值合法组底;termination可結(jié)束丈积;asynchronous消息傳遞異步無序;fail-stop節(jié)點(diǎn)宕機(jī)债鸡;fail-recover節(jié)點(diǎn)宕機(jī)恢復(fù)江滨;network-partition網(wǎng)絡(luò)分化,網(wǎng)絡(luò)出現(xiàn)問題娘锁,將N個(gè)節(jié)點(diǎn)隔離成多個(gè)部分牙寞;byzntine failure拜占庭將軍問題,不按套路出牌拋出干擾決議的信息莫秆。

6.1.2選舉间雀、多數(shù)派和租約

election選舉是分布式系統(tǒng)實(shí)踐中常見的問題,通過打破節(jié)點(diǎn)之間的對等關(guān)系镊屎,選的leader(Master\cordinator)有助于實(shí)現(xiàn)事務(wù)的原子性惹挟、提升決議效率。

多數(shù)派quorum是在網(wǎng)絡(luò)分化的情況下達(dá)成決議一致性缝驳,在leader選舉的場景下幫助我們選出唯一的leader连锯。

租約(lease)在一定期限內(nèi)給予節(jié)點(diǎn)特定權(quán)利,也可以實(shí)現(xiàn)leader選舉用狱,保證在一個(gè)時(shí)刻最多只有一個(gè)leader运怖。為了避免在選舉的時(shí)候只使用心跳機(jī)制會(huì)由于網(wǎng)絡(luò)擁塞或者瞬斷出現(xiàn)雙主的問題。lease最初提出用于解決分布式緩存一致性問題夏伊,后在分布式鎖等多方面都有引用

選舉bully算法

6.1.3CAP

consistency數(shù)據(jù)一致性摇展;所有的讀都讀取到最新的數(shù)據(jù),又稱為原子性atomic溺忧、線性一致性linearizable咏连。

availability服務(wù)可用性盯孙;所有讀寫請求在一定時(shí)間內(nèi)得到響應(yīng),可終止祟滴、不會(huì)一直等待

partition-tolerance分區(qū)容錯(cuò)性振惰;在網(wǎng)絡(luò)分區(qū)的情況下,被分隔的節(jié)點(diǎn)仍能正常對外服務(wù)

6.1.4一致性協(xié)議

paxos垄懂、raft骑晶、ZAB

Raft將問題分解和具體化,leader統(tǒng)一處理變更操作請求埠偿,一致性協(xié)議的作用具化為保證節(jié)點(diǎn)操作日志副本(log replication)一致透罢,以term作為邏輯時(shí)鐘保證時(shí)序榜晦,節(jié)點(diǎn)運(yùn)行相同狀態(tài)機(jī)得到一致結(jié)果冠蒋。

ZAB zookerper的內(nèi)部用到的一致性協(xié)議,保證強(qiáng)一致性乾胶。

6.1.5paxos算法及其協(xié)議

paxos協(xié)議在節(jié)點(diǎn)宕機(jī)抖剿、消息無序或丟失、網(wǎng)絡(luò)分化的場景下保證決議的一致性協(xié)議识窿。

將節(jié)點(diǎn)分為兩類斩郎,proposer申請人、提案人喻频,參與決議的為acceptor缩宜。learner、leader

6.2消息(適用場景甥温、有哪些消息組件锻煌、消息丟失問題)

1.適用場景

2.都有哪些MQ,區(qū)別是什么

3.如何保證數(shù)據(jù)不丟失

4.MQ的連接是線程安全的嗎姻蚓?

6.3RMI

6.4RPC

6.5傳輸

6.6路由

6.7存儲(chǔ)

6.8緩存

memcached ehcachedredis

6.9接口冪等性

6.10熔斷宋梧、降級(jí)等機(jī)制

6.11dubbo

6.11.1應(yīng)用場景

6.11.2底層實(shí)現(xiàn)原理和機(jī)制

6.12zookeeper

分布式協(xié)調(diào)技術(shù)。

1.數(shù)據(jù)模型Znode

2.適用場景

分布式鎖服務(wù)狰挡、配置維護(hù)捂龄、組服務(wù)、分布式消息隊(duì)列加叁、分布式通知/協(xié)調(diào)

3.原理

4.watch機(jī)制

6.13數(shù)據(jù)的垂直拆分倦沧、水平拆分。

1.數(shù)據(jù)庫的分庫分表策略

2.如何解決全表查詢問題

6.14redis

1.并發(fā)競爭如何解決它匕?

2.Redis事務(wù)的CAS

3.緩存穿透的解決辦法

6.15分布式鎖

6.16分布式事務(wù)

7數(shù)據(jù)庫

7.1mysql的引擎

myISAM索引方式為非聚集

innoDB

區(qū)別:

MyISAM的索引文件和數(shù)據(jù)文件是分離的展融,索引文件保存數(shù)據(jù)記錄的地址。InnoDB中標(biāo)數(shù)據(jù)文件本身就是按照B+tree組織的索引結(jié)構(gòu)超凳,在葉節(jié)點(diǎn)data保存了完整的數(shù)據(jù)記錄愈污,索引的key就是主鍵耀态。所以MyISAM可以無主鍵innoDB必須有主鍵。

與MYISAM索引不同的是INNODB輔助索引data域存儲(chǔ)相應(yīng)記錄主鍵的值而不是地址暂雹,所以檢索需要兩遍索引首装。因?yàn)樗休o助索引都引用主索引,過長的主索引令輔助索引變得過大杭跪。另外使用非單調(diào)的主鍵會(huì)造成插入新紀(jì)錄的數(shù)據(jù)文件為了維持B+tree的特性而頻繁的分裂調(diào)整仙逻。

7.2innoDB的文件結(jié)構(gòu)

7.3索引(索引樹的維護(hù)、符合索引)

索引是幫助MYSQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)涧尿。索引的數(shù)據(jù)結(jié)構(gòu)系奉,常用的B+tree,每個(gè)葉子節(jié)點(diǎn)不但存放了索引鍵的相關(guān)信息還添加了相鄰葉子節(jié)點(diǎn)的指針姑廉。

B-tree/B+tree

主存存取原理(通過隨機(jī)讀寫RAM缺亮,通過地址總線與數(shù)據(jù)總線讀寫,不存在機(jī)械操作)

磁盤存取原理(磁盤IO存在機(jī)械運(yùn)動(dòng)損耗)

局部性原理與預(yù)讀(或讀取一頁或多頁【4k】的數(shù)據(jù)到主存)

詳見:http://blog.jobbole.com/24006

myISAM與innoDB都采用B+tree的索引數(shù)據(jù)結(jié)構(gòu)桥言,但是實(shí)現(xiàn)不相同萌踱。

7.4mysql的優(yōu)化

MYSql的優(yōu)化分為結(jié)構(gòu)優(yōu)化和查詢優(yōu)化。必須做好4項(xiàng)工作:數(shù)據(jù)庫設(shè)計(jì)号阿、sql語句優(yōu)化并鸵、數(shù)據(jù)庫參數(shù)配置、恰當(dāng)?shù)挠布Y源和操作系統(tǒng)扔涧。

結(jié)構(gòu)優(yōu)化中高性能索引策略

explain查看時(shí)cardinality索引基數(shù)

select_type simple不包括union或子查詢园担;primary一個(gè)需要union或者包含子查詢的select。

type查詢使用的類型枯夜,type=const表示通過索引一次就找到了;type=all表示為全表索引;type=rel認(rèn)為多個(gè)匹配行弯汰,聯(lián)合索引。順序:

system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>ALL一般來說至少range最好是ref

possible_keys使用哪個(gè)索引找到的行如果為空卤档,則沒有相關(guān)的索引

key顯示使用的鍵蝙泼,如果沒有索引為nul.key=primary表示使用了主鍵;key=null表示沒有用到索引

key_len顯示使用鍵的長度

rows遍歷了多少行找到的劝枣,但是innodb不準(zhǔn)確

extra only index意味只用到索引樹汤踏。where

used使用上了where限制。impossible where標(biāo)識(shí)用不著where舔腾,一般就是沒有查詢出什么來溪胶。

1.最左前綴原理

7.5高并發(fā)如何安全的修改同一行數(shù)據(jù)?樂觀鎖稳诚、悲觀鎖哗脖?行級(jí)別的鎖有哪幾種?

7.6慢查詢?nèi)罩?/p>

配置my.ini

long_query_time=1

log-show-queries=路徑

7.7Semi-sync & group

replication

7.8主從復(fù)制

8大數(shù)據(jù)相關(guān)

8.1hadoop

8.2hive、Hbase

8.3storm才避、spark

8.4kafka

9應(yīng)用服務(wù)器

10工具&opts

10.1git

10.2mock

10.3jenkins

10.4Cat日志監(jiān)控

10.5postman或者RAP

10.6灰度

10.7docker/kubernetes

10.8linux

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末橱夭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子桑逝,更是在濱河造成了極大的恐慌棘劣,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件楞遏,死亡現(xiàn)場離奇詭異茬暇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)寡喝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門糙俗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人预鬓,你說我怎么就攤上這事巧骚。” “怎么了珊皿?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵网缝,是天一觀的道長。 經(jīng)常有香客問我蟋定,道長,這世上最難降的妖魔是什么草添? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任驶兜,我火速辦了婚禮,結(jié)果婚禮上远寸,老公的妹妹穿的比我還像新娘抄淑。我一直安慰自己,他們只是感情好驰后,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布肆资。 她就那樣靜靜地躺著,像睡著了一般灶芝。 火紅的嫁衣襯著肌膚如雪郑原。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天夜涕,我揣著相機(jī)與錄音犯犁,去河邊找鬼。 笑死女器,一個(gè)胖子當(dāng)著我的面吹牛酸役,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼涣澡,長吁一口氣:“原來是場噩夢啊……” “哼贱呐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起入桂,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吼句,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后事格,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惕艳,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年驹愚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了远搪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逢捺,死狀恐怖谁鳍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情劫瞳,我是刑警寧澤倘潜,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站志于,受9級(jí)特大地震影響涮因,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伺绽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一养泡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奈应,春花似錦澜掩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惩妇,卻和暖如春株汉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背屿附。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挺份,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓朵你,卻偏偏與公主長得像揣非,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子忌傻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

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