更新時間:2019-08-16 14:20:40 來源:動力節點 瀏覽3711次
近三年,其實都是在做一個項目,項目是一個大型的多節點部署的項目,做了好幾個版本,中間用到了很多技術和框架,也用了一些管理工具和敏捷實踐。我這里不是來說項目的,因為最近看了一些招聘信息,結合項目中用到的一些知識和管理措施,作為一個程序員,需要去實時評估下自己當前的能力是否能跟上時代的步伐,所以,總結了下作為一個中高級Java開發人員或架構師,到底需要掌握哪些技能。
當然,下述所列都是自己的看法,有興趣的參考下,沒興趣的,就當看笑話了吧。
Java基礎
1、List和Set的區別
2、HashSet是如何保證不重復的
3、HashMap是線程安全的嗎,為什么不是線程安全的(最好畫圖說明多線程環境下不安全)?
4、HashMap的擴容過程
5、HashMap1.7與1.8的區別,說明1.8做了哪些優化,如何優化的?
6、finalfinallyfinalize
7、強引用、軟引用、弱引用、虛引用
8、Java反射
9、Arrays.sort實現原理和Collection實現原理
10、LinkedHashMap的應用
11、cloneable接口實現原理
12、異常分類以及處理機制
13、wait和sleep的區別
14、數組在內存中如何分配
Java并發
1、synchronized的實現原理以及鎖優化?
2、volatile的實現原理?
3、Java的信號燈?
4、synchronized在靜態方法和普通方法的區別?
5、怎么實現所有線程在等待某個事件的發生才會去執行?
6、CAS?CAS有什么缺陷,如何解決?
7、synchronized和lock有什么區別?
8、Hashtable是怎么加鎖的?
9、HashMap的并發問題?
10、ConcurrenHashMap介紹?1.8中為什么要用紅黑樹?
11、AQS
12、如何檢測死鎖?怎么預防死鎖?
13、Java內存模型?
14、如何保證多線程下i++結果正確?
15、線程池的種類,區別和使用場景?
16、分析線程池的實現原理和線程的調度過程?
17、線程池如何調優,最大數目如何確認?
18、ThreadLocal原理,用的時候需要注意什么?
19、CountDownLatch和CyclicBarrier的用法,以及相互之間的差別?
20、LockSupport工具
21、Condition接口及其實現原理
22、Fork/Join框架的理解
23、分段鎖的原理,鎖力度減小的思考
24、八種阻塞隊列以及各個阻塞隊列的特性
1、BeanFactory和FactoryBean?
2、SpringIOC的理解,其初始化過程?
3、BeanFactory和ApplicationContext?
4、SpringBean的生命周期,如何被管理的?
5、SpringBean的加載過程是怎樣的?
6、如果要你實現SpringAOP,請問怎么實現?
7、如果要你實現SpringIOC,你會注意哪些問題?
8、Spring是如何管理事務的,事務管理機制?
9、Spring的不同事務傳播行為有哪些,干什么用的?
10、Spring中用到了那些設計模式?
11、SpringMVC的工作原理?
12、Spring循環注入的原理?
13、SpringAOP的理解,各個術語,他們是怎么相互工作的?
14、Spring如何保證Controller并發的安全?
Netty
1、BIO、NIO和AIO
2、Netty的各大組件
3、Netty的線程模型
4、TCP粘包/拆包的原因及解決方法
5、了解哪幾種序列化協議?包括使用場景和如何去選擇
6、Netty的零拷貝實現
7、Netty的高性能表現在哪些方面
分布式相關
1、Dubbo的底層實現原理和機制
2、描述一個服務從發布到被消費的詳細過程
3、分布式系統怎么做服務治理
4、接口的冪等性的概念
5、消息中間件如何解決消息丟失問題
6、Dubbo的服務請求失敗怎么處理
7、重連機制會不會造成錯誤
8、對分布式事務的理解
9、如何實現負載均衡,有哪些算法可以實現?
10、Zookeeper的用途,選舉的原理是什么?
11、數據的垂直拆分水平拆分。
12、zookeeper原理和適用場景
13、zookeeperwatch機制
14、redis/zk節點宕機如何處理
15、分布式集群下如何做到唯一序列號
16、如何做一個分布式鎖
17、用過哪些MQ,怎么用的,和其他mq比較有什么優缺點,MQ的連接是線程安全的嗎
18、MQ系統的數據如何保證不丟失
19、列舉出你能想到的數據庫分庫分表策略;分庫分表后,如何解決全表查詢的問題
20、zookeeper的選舉策略
21、全局ID
數據庫
1、mysql分頁有什么優化
2、悲觀鎖、樂觀鎖
3、組合索引,最左原則
4、mysql的表鎖、行鎖
5、mysql性能優化
6、mysql的索引分類:B+,hash;什么情況用什么索引
7、事務的特性和隔離級別
緩存
1、Redis用過哪些數據數據,以及Redis底層怎么實現
2、Redis緩存穿透,緩存雪崩
3、如何使用Redis來實現分布式鎖
4、Redis的并發競爭問題如何解決
5、Redis持久化的幾種方式,優缺點是什么,怎么實現的
6、Redis的緩存失效策略
7、Redis集群,高可用,原理
8、Redis緩存分片
9、Redis的數據淘汰策略
JVM
1、詳細jvm內存模型
2、講講什么情況下回出現內存溢出,內存泄漏?
3、說說Java線程棧
4、JVM年輕代到年老代的晉升過程的判斷條件是什么呢?
5、JVM出現fullGC很頻繁,怎么去線上排查問題?
6、類加載為什么要使用雙親委派模式,有沒有什么場景是打破了這個模式?
7、類的實例化順序
8、JVM垃圾回收機制,何時觸發MinorGC等操作
9、JVM中一次完整的GC流程(從ygc到fgc)是怎樣的
10、各種回收器,各自優缺點,重點CMS、G1
11、各種回收算法
12、OOM錯誤,stackoverflow錯誤,permgenspace錯誤
1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的。
2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的。
3、如果沒有工作經驗,但基礎非常扎實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的。
4、覺得自己很牛B,一般需求都能搞定,但是所學的知識點沒有系統化,很難在技術領域繼續突破的。
程序員的核心競爭力是什么?
是學習能力。我們這個行業實在變化太快,“一招鮮,吃遍天”這種事情是不存在的,我們總會遇到從未接觸過的新挑戰,怎么辦?學習。就如同一個優秀的企業,它最有價值的地方在于它有無限的發展前景。那么一個優秀的程序員,最有價值的地方就在于擁有無限的潛力。要知道,公司雇傭一個人,并不是因為他現在水平深淺,而是他能不能和公司一起成長,只看眼前的公司不會長久,只看眼前的員工沒有未來。
程序員到底何去何從?
其實啰嗦了那么多,歸根結底就是持續提升自己,就這么簡單。把焦慮、嫉妒、迷茫的時間拿來充實自己,到了35歲你會發現,這真的是職業生涯的分岔路口,只不過我們的路通向美好。
合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
給你分析一下這些技術,給大家羅列一些技術,看你有沒有學到這些技術。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習