個人總結的一個中高級Java開發工程師或架構師需要掌握的一些技能...

近三年,其實都是在做一個項目,項目是一個大型的多節點部署的項目,做了好幾個版本,中間用到了很多技術和框架,

也用了一些管理工具和敏捷實踐。我這里不是來說項目的,因為最近看了一些招聘信息,結合項目中用到的一些知識和

管理措施,作為一個程序員,需要去實時評估下自己當前的能力是否能跟上時代的步伐,所以,總結了下作為一個中高

級Java開發人員或架構師,到底需要掌握哪些技能。

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

Java基礎

1、List 和 Set 的區別

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

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

4、HashMap 的擴容過程

5、HashMap 1.7 與 1.8 的 區別,說明 1.8 做了哪些優化,如何優化的?

6、final finally finalize

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、八種阻塞隊列以及各個阻塞隊列的特性

Spring

1、BeanFactory 和 FactoryBean?

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

3、BeanFactory 和 ApplicationContext?

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

5、Spring Bean 的加載過程是怎樣的?

6、如果要你實現Spring AOP,請問怎么實現?

7、如果要你實現Spring IOC,你會注意哪些問題?

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

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

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

11、Spring MVC 的工作原理?

12、Spring 循環注入的原理?

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

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、zookeeper watch機制

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錯誤,permgen space錯誤

1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,

需要突破技術瓶頸的。2、在公司待久了,過得很安逸,

但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的。

3、如果沒有工作經驗,但基礎非常扎實,對java工作機制,

常用設計思想,常用java開發框架掌握熟練的。

4、覺得自己很牛B,一般需求都能搞定。

但是所學的知識點沒有系統化,很難在技術領域繼續突破的。

5. 群號:860113481高級架構群備注好信息!

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

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

程序員到底何去何從?

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

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

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

性能調優

應用框架源碼解讀

分布式架構

微服務專題

團隊協作開發

B2C商城項目實戰

免費獲取架構視頻


歡迎工作一到五年的Java工程師朋友們加入Java填坑之路:860113481
群內提供免費的Java架構學習資料(里面有高可用、高并發、高性能及分布式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281678.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281678.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281678.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android 進程常駐(5)----開機廣播的簡單守護以及總結

這是一個輕量級的庫,配置幾行代碼。就能夠實如今android上實現進程常駐,也就是在系統強殺下,以及360獲取root權限下。clean master獲取root權限下都無法殺死進程 支持系統2.3到6.0 支持大部分設備,包含三星。華為。oppo&#xff0…

[k8s]metricbeat的kubernetes模塊kube-metric模塊

正確姿勢啟動metricbeat metricbeat.modules: - module: systemmetricsets:- cpu- filesystem- memory- network- processenabled: trueperiod: 10sprocesses: [.*]cpu_ticks: falseoutput.elasticsearch:hosts: ["http://192.168.x.x:9200"]setup.template.name: &q…

如何為 Task 添加超時功能

前言假設有如下代碼,功能是首先從緩存獲取數據,如果沒有命中緩存,則直接從數據庫獲取:var data await GetFromCache(); if (data is null) {data await GetFromDB(); }對于獲取緩存數據,我們需要限制一下GetFromCach…

php 隨機指定位數,php生成一個可選位數的隨機碼

echo coding(6);function coding($num){$str_arr array(‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘,‘i‘,‘j‘,‘k‘,‘l‘,‘m‘,‘n‘,‘o‘,‘p‘,‘q‘,‘r‘,‘s‘,‘t‘,‘u‘,‘v‘,‘w‘,‘x‘,‘y‘,‘z‘,‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘…

Animate與transform的使用

Animate是用css給前端加載動畫的效果&#xff1a; 網址&#xff1a;https://daneden.github.io/animate.css/ <!DOCTYPE html> <html lang"en"> <head><link rel"stylesheet" href"static/css/Animate.css"><meta ch…

angular中的cookies與cookieStore區別

設置cookie用put()方法: $cookies.put(key, value[, options]); $cookieStore.put(key, value); 例如設置一個cookie&#xff0c;名為“userName”&#xff0c;值為“yangmin”&#xff1a; //使用$cookies設置cookie $cookies.put(userName, yangmin); //使用$cookieStore設置…

ASP.NET Core 6框架揭秘實例演示[29]:搭建文件服務器

通過HTTP請求獲取的Web資源很多都來源于存儲在服務器磁盤上的靜態文件。對于ASP.NET應用來說&#xff0c;如果將靜態文件存儲到約定的目錄下&#xff0c;絕大部分文件類型都是可以通過Web的形式對外發布的。“Microsoft.AspNetCore.StaticFiles” 這個NuGet包中提供了三個用來處…

js 棧(進制轉換)

<!DOCTYPE html>Documentposted 2017-12-07 19:33 mysure 閱讀(...) 評論(...) 編輯 收藏 刷新評論刷新頁面返回頂部轉載于:https://www.cnblogs.com/ar13/p/8000718.html

流程展示 php,js實現動態的流程進度展示條

這次給大家帶來js實現動態的流程進度展示條&#xff0c;js實現動態流程進度展示條的注意事項有哪些&#xff0c;下面就是實戰案例&#xff0c;一起來看一下。一、設計思路分為以下幾步(僅供參考)【豎線線】這個采用ul的list標簽制作&#xff0c;保證了可隨時添加&#xff0c;以…

【我們一起寫框架】C#的AOP框架

原文:【我們一起寫框架】C#的AOP框架前言 AOP&#xff0c;大家都是聽過的&#xff0c;它是一種面向切面的設計模式。 不過AOP雖然是被稱為設計模式&#xff0c;但我們應該很少能看到AOP設計的框架。為什么呢&#xff1f; 因為&#xff0c;AOP單獨設計的框架幾乎是無法使用的。普…

新浪微博授權認證過程

為什么80%的碼農都做不了架構師&#xff1f;>>> 一、授權認證 1、請求用戶授權Token URL&#xff1a; https://api.weibo.com/oauth2/authorize HTTP請求方式:GET/POST 請求參數 必選 類型及范圍 說明 client_id true string 申請應用時分配的AppKey。 redire…

VisualStudio 使用 FastTunnel 輔助搭建遠程調試環境

有時候需要遠程調試一些用戶問題&#xff0c;期望能使用本機的 Visual Studio 開發環境&#xff0c;調試遠程的用戶的設備上的應用。這時會遇到的一個問題是如何讓本機的 Visual Studio 可以連接上遠程的用戶的設備&#xff0c;從而進行調試。本文將告訴大家如何采用 FastTunne…

深入理解null的原理

--null的原理 --oracle一直將null和空字符串’’<長度為0>同等對待<如’’ is null是true,’’null為false,如果聲明a varchar2:’’,那么a is null為true,a’’為false>--1.null的運算 --算術表達式和null 運算總為null,實際上所有的操作符除了||連接操作符外&…

阻止中文輸入法輸入拼音的時候觸發input事件

阻止中文輸入法輸入拼音的時候觸發input事件 前言 最近看element-ui源碼的時候看到el-input發現的。這個少見的事件。 compositionstart、compositionend事件&#xff08;MDN解釋) compositionstart事件觸發于一段文字的輸入之前&#xff08;類似于 keydown 事件&#xff0c;但…

Python1

python介紹python是一種解釋型的&#xff0c;面對對象的。帶有動態語義的高級程序設計語言python簡史1989年,Guido(龜叔)為ABC 語言寫的一個插件。因Monty Python的喜劇團體的原因,故給這個語言起名為python。linux也是1989年誕生的,1991年正式發布linux1.0內核;1990年, 發布py…

ncut算法matlab實現,ncut_multiscale_1_6 經典的圖像分割算法 的Matlab代碼。 238萬源代碼下載- www.pudn.com...

文件名稱: ncut_multiscale_1_6下載收藏√ [5 4 3 2 1 ]開發工具: matlab文件大小: 587 KB上傳時間: 2015-04-17下載次數: 4提 供 者: HH詳細說明&#xff1a;經典的圖像分割算法NCut的Matlab代碼。-Matlab code of classic image segmentation algorithm NCut .文件列表(…

使用.NET從零實現基于用戶角色的訪問權限控制

使用.NET從零實現基于用戶角色的訪問權限控制本文將介紹如何實現一個基于.NET RBAC 權限管理系統&#xff0c;如果您不想了解原理&#xff0c;可查看推送的另一篇文章關于Sang.AspNetCore.RoleBasedAuthorization[1] 庫是使用介紹&#xff0c;直接使用該庫即可。背景在設計系統…

數據歸一化

數據歸一化 數據的標準化是將數據按比例縮放&#xff0c;使之落入一個小的特定區間&#xff0c;一般為0到1之間。在某些比較和評價的指標處理中經常會用到&#xff0c;去除數據的單位限制&#xff0c;將其轉化為無量綱的純數值&#xff0c;便于不同單位或量級的指標能夠進行比較…

vi is failed with error E382: Cannot write, 'buftype' option is set in Linux

在linux下生成jar文件遇到了編碼問題&#xff0c;于是想vi t.jar&#xff0c;在保存是報錯&#xff1a;E382: Cannot write, buftype option is set 解決方法&#xff1a; 可以用下面的命名查看buftype的設置&#xff0c;當buftypenofile時&#xff0c;不能保存文件&#xff0c…

列表生成式的使用

輸入&#xff1a;[Hello, World, 18, Apple, None] 輸出&#xff1a;[hello, world, apple] L [Hello, World, 18, Apple, None] print([w.lower() for w in L if isinstance(w, str)])# -- coding: utf-8 -- L [Hello, World, 18, Apple, None] L2 [] L2 [w.lower() for w…