中高級Java工程師或架構師需要掌握的一些技能

中高級Java工程師或架構師需要掌握的一些技能

長沙牛耳教育      2022-03-26 16:30:01     9

中高級Java工程師或架構師需要掌握的一些技能,  近三年,其實都是在做一個項目,項目是一個大型的多節(jié)點部署的項目,做了好幾個版本,中間用到了很多技術和框架,也用了一些

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹

  近三年,其實都是在做一個項目,項目是一個大型的多節(jié)點部署的項目,做了好幾個版本,中間用到了很多技術和框架,也用了一些管理工具和敏捷實踐。我這里不是來說項目的,因為最近看了一些招聘信息,結合項目中用到的一些知識和管理措施,作為一個程序員,需要去實時評估下自己當前的能力是否能跟上時代的步伐,所以,總結了下作為一個中高級Java開發(fā)人員或架構師,到底需要掌握哪些技能。


  當然,下述所列都是自己的看法,有興趣的參考下,沒興趣的,就當看笑話了吧。



  Java基礎


  1、List和Set的區(qū)別


  2、HashSet是如何保證不重復的


  3、HashMap是線程安全的嗎,為什么不是線程安全的(最好畫圖說明多線程環(huán)境下不安全)?


  4、HashMap的擴容過程


  5、HashMap1.7與1.8的區(qū)別,說明1.8做了哪些優(yōu)化,如何優(yōu)化的?


  6、finalfinallyfinalize


  7、強引用、軟引用、弱引用、虛引用


  8、Java反射


  9、Arrays.sort實現(xiàn)原理和Collection實現(xiàn)原理


  10、linkedHashMap的應用


  11、cloneable接口實現(xiàn)原理


  12、異常分類以及處理機制


  13、wait和sleep的區(qū)別


  14、數(shù)組在內(nèi)存中如何分配


  Java并發(fā)


  1、synchronized的實現(xiàn)原理以及鎖優(yōu)化?


  2、volatile的實現(xiàn)原理?


  3、Java的信號燈?


  4、synchronized在靜態(tài)方法和普通方法的區(qū)別?


  5、怎么實現(xiàn)所有線程在等待某個事件的發(fā)生才會去執(zhí)行?


  6、CAS?CAS有什么缺陷,如何解決?


  7、synchronized和lock有什么區(qū)別?


  8、Hashtable是怎么加鎖的?


  9、HashMap的并發(fā)問題?


  10、ConcurrenHashMap介紹?1.8中為什么要用紅黑樹?


  11、AQS


  12、如何檢測死鎖?怎么預防死鎖?


  13、Java內(nèi)存模型?


  14、如何保證多線程下i++結果正確?


  15、線程池的種類,區(qū)別和使用場景?


  16、分析線程池的實現(xiàn)原理和線程的調(diào)度過程?


  17、線程池如何調(diào)優(yōu),最大數(shù)目如何確認?


  18、ThreadLocal原理,用的時候需要注意什么?


  19、CountDownLatch和CyclicBarrier的用法,以及相互之間的差別?


  20、LockSupport工具


  21、Condition接口及其實現(xiàn)原理


  22、Fork/Join框架的理解


  23、分段鎖的原理,鎖力度減小的思考


  24、八種阻塞隊列以及各個阻塞隊列的特性


  Spring


  1、BeanFactory和FactoryBean?


  2、SpringIOC的理解,其初始化過程?


  3、BeanFactory和ApplicationContext?


  4、SpringBean的生命周期,如何被管理的?


  5、SpringBean的加載過程是怎樣的?


  6、如果要你實現(xiàn)SpringAOP,請問怎么實現(xiàn)?


  7、如果要你實現(xiàn)SpringIOC,你會注意哪些問題?


  8、Spring是如何管理事務的,事務管理機制?


  9、Spring的不同事務傳播行為有哪些,干什么用的?


  10、Spring中用到了那些設計模式?


  11、SpringMVC的工作原理?


  12、Spring循環(huán)注入的原理?


  13、SpringAOP的理解,各個術語,他們是怎么相互工作的?


  14、Spring如何保證Controller并發(fā)的安全?


  Netty


  1、BIO、NIO和AIO


  2、Netty的各大組件


  3、Netty的線程模型


  4、TCP粘包/拆包的原因及解決方法


  5、了解哪幾種序列化協(xié)議?包括使用場景和如何去選擇


  6、Netty的零拷貝實現(xiàn)


  7、Netty的高性能表現(xiàn)在哪些方面


  分布式相關


  1、Dubbo的底層實現(xiàn)原理和機制


  2、描述一個服務從發(fā)布到被消費的詳細過程


  3、分布式系統(tǒng)怎么做服務治理


  4、接口的冪等性的概念


  5、消息中間件如何解決消息丟失問題


  6、Dubbo的服務請求失敗怎么處理


  7、重連機制會不會造成錯誤


  8、對分布式事務的理解


  9、如何實現(xiàn)負載均衡,有哪些算法可以實現(xiàn)?


  10、Zookeeper的用途,選舉的原理是什么?


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


  12、zookeeper原理和適用場景


  13、zookeeperwatch機制


  14、redis/zk節(jié)點宕機如何處理


  15、分布式集群下如何做到唯一序列號


  16、如何做一個分布式鎖


  17、用過哪些MQ,怎么用的,和其他mq比較有什么優(yōu)缺點,MQ的連接是線程安全的嗎


  18、MQ系統(tǒng)的數(shù)據(jù)如何保證不丟失


  19、列舉出你能想到的數(shù)據(jù)庫分庫分表策略;分庫分表后,如何解決全表查詢的問題


  20、zookeeper的選舉策略


  21、全局ID


  數(shù)據(jù)庫


  1、mysql分頁有什么優(yōu)化


  2、悲觀鎖、樂觀鎖


  3、組合索引,最左原則


  4、mysql的表鎖、行鎖


  5、mysql性能優(yōu)化


  6、mysql的索引分類:B+,hash;什么情況用什么索引


  7、事務的特性和隔離級別


  緩存


  1、Redis用過哪些數(shù)據(jù)數(shù)據(jù),以及Redis底層怎么實現(xiàn)


  2、Redis緩存穿透,緩存雪崩


  3、如何使用Redis來實現(xiàn)分布式鎖


  4、Redis的并發(fā)競爭問題如何解決


  5、Redis持久化的幾種方式,優(yōu)缺點是什么,怎么實現(xiàn)的


  6、Redis的緩存失效策略


  7、Redis集群,高可用,原理


  8、Redis緩存分片


  9、Redis的數(shù)據(jù)淘汰策略


  JVM


  1、詳細jvm內(nèi)存模型


  2、講講什么情況下回出現(xiàn)內(nèi)存溢出,內(nèi)存泄漏?


  3、說說Java線程棧


  4、JVM年輕代到年老代的晉升過程的判斷條件是什么呢?


  5、JVM出現(xiàn)fullGC很頻繁,怎么去線上排查問題?


  6、類加載為什么要使用雙親委派模式,有沒有什么場景是打破了這個模式?


  7、類的實例化順序


  8、JVM垃圾回收機制,何時觸發(fā)MinorGC等操作


  9、JVM中一次完整的GC流程(從ygc到fgc)是怎樣的


  10、各種回收器,各自優(yōu)缺點,重點CMS、G1


  11、各種回收算法


  12、OOM錯誤,stackoverflow錯誤,permgenspace錯誤


  1、具有1-5工作經(jīng)驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的。

      

      2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內(nèi)進修、跳槽拿高薪的。


  3、如果沒有工作經(jīng)驗,但基礎非常扎實,對java工作機制,常用設計思想,常用java開發(fā)框架掌握熟練的。


  4、覺得自己很牛B,一般需求都能搞定,但是所學的知識點沒有系統(tǒng)化,很難在技術領域繼續(xù)突破的。


  程序員的核心競爭力是什么?


  是學習能力。我們這個行業(yè)實在變化太快,“一招鮮,吃遍天”這種事情是不存在的,我們總會遇到從未接觸過的新挑戰(zhàn),怎么辦?學習。就如同一個優(yōu)秀的企業(yè),它最有價值的地方在于它有無限的發(fā)展前景。那么一個優(yōu)秀的程序員,最有價值的地方就在于擁有無限的潛力。要知道,公司雇傭一個人,并不是因為他現(xiàn)在水平深淺,而是他能不能和公司一起成長,只看眼前的公司不會長久,只看眼前的員工沒有未來。


  程序員到底何去何從?


  其實啰嗦了那么多,歸根結底就是持續(xù)提升自己,就這么簡單。把焦慮、嫉妒、迷茫的時間拿來充實自己,到了35歲你會發(fā)現(xiàn),這真的是職業(yè)生涯的分岔路口,只不過我們的路通向美好。


  合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!


  給你分析一下這些技術,給大家羅列一些技術,看你有沒有學到這些技術。


  


培訓啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹慎!任何要求預付定金、匯款等方式均存在風險,謹防上當。