月薪20k的程序員工作中在干些什么?
大家好,我們又見面了。今天我們聊聊一個大家普遍關(guān)心的問題,java程序員的工資,以及對應(yīng)的技術(shù)水平。
一般來說,做技術(shù)都是工作經(jīng)驗(yàn)越豐富越吃香,當(dāng)然了也有很多人說35歲以后的程序員就很難找工作了!
所以在自己剛?cè)胄泄ぷ鞯那?年,一定要不斷提升自己的技術(shù)能力。自己也要準(zhǔn)備一份面試題大全,業(yè)余時間把面試的題目都去認(rèn)真了解、研究一遍。做到隨時都可以辭職面試的狀態(tài),有備無患!
ok,回到我們之前的話題,月薪10k,15k,20k分析需要掌握什么樣的技術(shù),相信這才是你最關(guān)心的。
月薪10K左右:屬于小白-1年經(jīng)驗(yàn),java入門級別。普遍學(xué)會java基礎(chǔ),常用框架中Springboot、mybatis能夠靈活使用,懂得一下原理性的東西,然后自己做幾個項(xiàng)目,簡歷再包裝一下2年經(jīng)驗(yàn),好好準(zhǔn)備一下面試,這樣通過面試的概率就很高了。當(dāng)然了,1年經(jīng)驗(yàn)的同學(xué)如果技術(shù)還可以,包裝一下3年經(jīng)驗(yàn)也可以哈,工資的話13K、15k可以嘗試一下。
所以,你應(yīng)該準(zhǔn)備這樣一份面試題:
10K面試題:
1.抽象類和接口的關(guān)系和區(qū)別,以及你在時間開發(fā)過程中是怎么使用到的?
2.你知道反射機(jī)制和動態(tài)代理嗎?
3.一個線程連續(xù)兩次調(diào)用start方法會發(fā)生什么?簡單談?wù)劸€程的幾種狀態(tài)?
4.springmvc實(shí)現(xiàn)原理?
5.mybatis中#$的區(qū)別?
6.你知道設(shè)計(jì)模式嗎?在實(shí)際運(yùn)用中你會怎樣去運(yùn)用他?比如我這里有個策劃打折活動,比如VIP, 普通用戶,顧客分別打不一樣的折扣,你會用什么設(shè)計(jì)模式?
7.你知道索引失效嘛?舉例看看?
8.多態(tài)在實(shí)際項(xiàng)目的使用?
9.你知道Spring IOC嗎?Spring是怎么創(chuàng)建對象的?
10.你知道緩存機(jī)制不?
11.你的項(xiàng)目中有用到數(shù)據(jù)庫分庫分片嗎?數(shù)據(jù)庫分庫分片規(guī)則?
12.在實(shí)際中你會怎樣對sql語句進(jìn)行優(yōu)化?
13.常見的數(shù)據(jù)結(jié)構(gòu)有哪些?在JAVA中是怎么使用到他們的?
14.JVM原理你知道嘛?有沒自己調(diào)優(yōu)過?
15.看你的項(xiàng)目里用到了springboot,談?wù)勀銓pringboot的理解?
16.你項(xiàng)目里用到了rocket MQ,那你知道rabbit MQ、rocket MQ和kafka他們之間的區(qū)別嘛?能簡單說說不?
17.redis常運(yùn)用場景有哪些?你的項(xiàng)目中主要使用到redis是用到干嘛的?
18.有自己部署過redis嘛?redis是如何實(shí)現(xiàn)高可用的?
19.了解mysql的讀寫分離嘛?是如何實(shí)現(xiàn)高可用的?
20.Exception和Error的關(guān)系和區(qū)別?
21.基本數(shù)據(jù)類型轉(zhuǎn)換為String時你有幾種方法,分別是什么?
22.如何利用JDK不依賴外部工具,實(shí)現(xiàn)一個簡單的緩存機(jī)制?請簡述用到的技術(shù)和思路。
23.你項(xiàng)目中是怎樣用到事務(wù)的?分布式鎖呢?
24.Zookeeper有哪些運(yùn)用場景?
月薪15K左右:恭喜你,終于算個小高手啦,能獨(dú)立搭建和負(fù)責(zé)完成一個完整項(xiàng)目。還記得我以前在外包公司,拿著15K工資,領(lǐng)導(dǎo)給了我一個項(xiàng)目,負(fù)責(zé)開發(fā)一個政府的資產(chǎn)管理管理系統(tǒng),功能不會很復(fù)雜,會設(shè)計(jì)到資產(chǎn)的收納、錄入、報廢等過程,其中還會涉及到條形碼設(shè)計(jì),和硬件標(biāo)槍的掃碼自動錄入和識別等。是復(fù)雜也不算特別復(fù)雜,只要把各種表關(guān)系、字段等提前設(shè)計(jì)好,靈活運(yùn)用代碼生成工具,就會少寫很多代碼。
15K的能力,我們應(yīng)該對springboot、springcloud、分布式鎖、事務(wù)、多線程并發(fā)問題、JVM底層、網(wǎng)絡(luò)層等知識要能理解并靈活運(yùn)用!你應(yīng)該準(zhǔn)備這樣一份面試題:
15K面試題
1.IO/NIO的區(qū)別,為什么要用NIO,使用IO中的Buffered..也能實(shí)現(xiàn)NIO的面向緩沖,什么情況下用NIO?
2.熟悉的排序算法有哪些,快速排序算法的實(shí)現(xiàn)原理?
3.HashMap與ConcurrentHashMap有什么區(qū)別?HashMap的存儲結(jié)構(gòu)?
4.vector、ArrayList、LinkedList區(qū)別及存儲性能。
5.線程實(shí)現(xiàn)的幾種方式,有什么區(qū)別,一般用哪個,為什么?
6.多線程中線程池怎樣使用及其實(shí)現(xiàn)原理?
7.volatile關(guān)鍵字的作用是什么?
8.synchronized關(guān)鍵字的作用,使用該關(guān)鍵字后保證同步了,同步代碼塊與同步方法有什么區(qū)別?
9.一個線程可以多次start嗎,會報錯嗎?
10.spring AOP IOC實(shí)現(xiàn)原理?
11.spring中的事務(wù)的傳播方式怎樣實(shí)現(xiàn)的?
12.spring中事務(wù)實(shí)現(xiàn)的原理?
13.為什么要使用數(shù)據(jù)庫索引,數(shù)據(jù)庫索引有哪些,索引的底層原理是什么?
14.sql查詢緩慢怎么處理,sql優(yōu)化方案有哪些,explain用過嗎?
15.數(shù)據(jù)庫中的鎖有幾種?
比如行鎖、表鎖等會深問
16.數(shù)據(jù)庫為什么要使用事務(wù),事務(wù)的原理?
17.數(shù)據(jù)庫分庫分表的方法,垂直分還是水平分,根據(jù)哪些來分?
18count(1) count(5) count(*)有什么區(qū)別,100萬條數(shù)據(jù)的效率如何?
19.solr搜索實(shí)現(xiàn)原理、使用的排序算法是什么,怎樣實(shí)現(xiàn)快速查詢?
20.3次握手的原理是什么?
21.動態(tài)代理實(shí)現(xiàn)原理是什么和動態(tài)代理使用的方法、類有哪些?
22.redis的數(shù)據(jù)結(jié)構(gòu)有哪些?
23.虛擬機(jī)了解多少?
24.spring默認(rèn)是單利還是多例的?
25.常用的隊(duì)列有哪些?什么情況下使用?
26.你知道的線程安全的類有哪些,方法有哪些?
27.數(shù)據(jù)庫的樂觀鎖和悲觀鎖的原理及使用?(version)
28.對GC了解多少?
29.堆和棧的區(qū)別,堆中存放什么,棧中存放什么?
30.用過的中間件有哪些?
月薪20K以上:你已經(jīng)是個大神級別的人物了,技術(shù)牛逼,是公司里的高級工程師、項(xiàng)目經(jīng)理,或者架構(gòu)師,能獨(dú)擋一面,下面會有幾個小弟,主要負(fù)責(zé)公司的整體項(xiàng)目把控。服務(wù)宕機(jī)了,老板罵你;下屬寫了個Bug導(dǎo)致?lián)p失,老板罵你;半夜老板打電話給你,說臨時有個想法;大早上甲方打電話給你,說需求再改改。我只能說,壓力山大。
大神級的面試題:
20K面試題
1.您認(rèn)為的“大規(guī)模高并發(fā)訪問的Web”有哪些呢. 請舉例2個知名的網(wǎng)站
2.您開發(fā)過的核心功能,哪些呢
3.如果讓你對外開發(fā)一個接口,你會考慮哪些因素?
4.設(shè)計(jì)數(shù)據(jù)庫的時候會考慮哪些因素,怎樣去建表?
5.說說負(fù)載均衡,緩存,文件數(shù)據(jù)庫技術(shù)的心得和要點(diǎn)。
6.性能評估機(jī)制,指哪方面呢。您有這方面的經(jīng)驗(yàn)和體會嗎?
7.精通UML、以及熟練使用一種或多種建模工具。
8.您常去的技術(shù)網(wǎng)站是什么。工作做用過什么輔助軟件呢?