阿里四面之后才懂得如何更好的学Java
前言
很多程序員一開始在學(xué)習(xí)上找不到方向,但我想在渡過了一段時(shí)間的新手期之后這類問題大多都會(huì)變得不再那么明顯,工作的方向也會(huì)逐漸變得清晰起來。
但是沒過多久,能了解到的資料就開始超過每天學(xué)習(xí)的能力,像是買了沒看的書、收藏沒讀的貼、mark 了之后再也沒有關(guān)注過的文章越積越多,更別提每天面對(duì)各種技術(shù)分享或者微博里的新鮮玩意了。
大多數(shù)人每天能留給自己學(xué)習(xí)的時(shí)間有限,這個(gè)階段如何提升學(xué)習(xí)效率就成了要解決的重點(diǎn)。
說說自己提升學(xué)習(xí)效率的心得,其實(shí)非常簡單:體系化的學(xué)習(xí)。
我曾經(jīng)很喜歡看一些博客或者是一些 “看起來” 比較通俗易懂的文章,每天在微博微信里刷到什么技術(shù)文章就 mark 下來,基本上幾分鐘就能讀完??梢欢螘r(shí)間下來,雖然讀了不少東西,但是還是有種在原地打轉(zhuǎn)的狀態(tài),并沒有感受到有什么實(shí)際的提高。
最后實(shí)在忍不住,抱著厚書硬啃了一遍,突然有種豁然開朗的感覺:讀書時(shí)自己學(xué)到的是一張完整的知識(shí)網(wǎng)絡(luò),每個(gè)知識(shí)點(diǎn)和其它內(nèi)容相互聯(lián)系和區(qū)別。這種全方位的理解比起一篇篇獨(dú)立的文章,不知要高到哪里去了。
在重復(fù)了幾次痛苦的學(xué)習(xí)-梳理過程后,再去看一些獨(dú)立的文章或者資料往往會(huì)事半功倍,因?yàn)槟茉隗w系內(nèi)找到相對(duì)應(yīng)的知識(shí),甚至有時(shí)候一本書里一頁只需要看一句話,點(diǎn)破那層窗戶紙,就可以掌握新的知識(shí)。所以我建議你看文章博客,不能只看一篇,通透的、連續(xù)的學(xué)習(xí),效果才是最佳的。
永遠(yuǎn)不會(huì)有正當(dāng)其時(shí)的時(shí)候,你總會(huì)覺得要么年紀(jì)太輕,要么太老,要么太忙,抑或是其他什么原因。如果你總是為找不到完美的時(shí)刻而困擾,那么,完美的時(shí)機(jī)永遠(yuǎn)不會(huì)出現(xiàn)。學(xué)習(xí)的最好機(jī)會(huì)有兩個(gè),一個(gè)是十年前,還有一個(gè),就是現(xiàn)在。
阿里一面
1.自我介紹,包括做過項(xiàng)目。
2.有看過哪些JDK源碼,了解哪些常用庫。
3.集合框架HashMap的擴(kuò)容機(jī)制,ConcurrnetHashMap的原理
4.jvm內(nèi)存模型與gc內(nèi)存回收機(jī)制
5.classloader結(jié)構(gòu),是否可以自己定義一個(gè)java.lang.String類,為什么? 雙親代理機(jī)制。
6.了解哪些設(shè)計(jì)模式,6個(gè)設(shè)計(jì)原則分別是什么?每種設(shè)計(jì)原則體現(xiàn)的設(shè)計(jì)模式是哪個(gè)?
7.關(guān)于設(shè)計(jì)模式看了哪些書?書名是什么?
8.uml模型圖畫過哪些? 類圖中類之間的關(guān)系有哪些,區(qū)別分別是什么?
9.畫uml中類圖時(shí)候用過一種虛線么?做什么用的?
10.做過應(yīng)用相關(guān)性能測(cè)試的,舉個(gè)例子,實(shí)際項(xiàng)目中怎么使用的。
用過并發(fā)框架相關(guān)的哪些內(nèi)容
11.了解哪些osgi的框架?
12有沒有做過jvm內(nèi)存調(diào)優(yōu),如何做的,舉例子,用過哪些工具?
阿里二面
1.自我介紹
2.看過哪些源碼
3.java的io庫的類結(jié)構(gòu)圖所用到的設(shè)計(jì)模式如何體現(xiàn)
4.畫出自己設(shè)計(jì)過的設(shè)計(jì)模式如何體現(xiàn),畫出結(jié)構(gòu)圖,并進(jìn)行講解。
5.畫出自己做的架構(gòu)的項(xiàng)目架構(gòu)圖 如何擴(kuò)展等
6.數(shù)據(jù)庫設(shè)計(jì)中主鍵id設(shè)計(jì)的原則
7.jvm內(nèi)存調(diào)優(yōu)用過哪些工具,jstate做什么用的?如何dump出當(dāng)前線程狀態(tài)?
8.并發(fā)框架是否有了解
9.classloader的雙親代理機(jī)制
10.應(yīng)用服務(wù)器的jvm調(diào)優(yōu)實(shí)際經(jīng)驗(yàn),如何做的,在哪里用到的
11.在哪里獲取最新資訊,逛什么論壇。最新的Swift語言有什么看法
12.設(shè)計(jì)原則與設(shè)計(jì)模式對(duì)應(yīng)
13.servlet/filter作用原理配置
14.ibatis in操作 以及一個(gè)屬性的作用
15.spring aop 用了什么設(shè)計(jì)原則,自動(dòng)注入配置是做什么用的
16.jboss的類加載器
17.session共享機(jī)制
18.做過最成功的一件事情是什么?
19.最大的爭(zhēng)執(zhí)是什么?
20.為什么想要離職去阿里
阿里三面
1.現(xiàn)在公司負(fù)責(zé)什么?
2.項(xiàng)目主要目的是做什么的?
3.公司管理方式、項(xiàng)目問題反饋機(jī)制是什么?
4.Java 的序列化做什么用的 序列化id會(huì)出現(xiàn)哪些問題?
5.OSGi用過哪些?類加載器結(jié)構(gòu)如何,如何在一個(gè)bundle中加載另外一個(gè)bundle中的一個(gè)類?
6.nio是否了解 阻塞之后通知機(jī)制是怎樣的?
7.uml設(shè)計(jì)類圖如何畫,類之間關(guān)系以及區(qū)別
8.spring如何不需要配置文件加載bean定義,可能是問自動(dòng)注解或者是properties文件定義bean
9.ibatis等框架是不是都是實(shí)際在使用的,技術(shù)細(xì)節(jié)
10.為什么想離職?
阿里四面
1.自我介紹
2.公司做什么,業(yè)務(wù), 負(fù)責(zé)內(nèi)容,匯報(bào)機(jī)制
3.企業(yè)級(jí)應(yīng)用安全相關(guān)
4.http協(xié)議,返回碼,301與302區(qū)別
5.多線程并發(fā)用過哪些
6.應(yīng)用服務(wù)器相關(guān),談最熟悉的
7.為什么離職
基礎(chǔ)
基礎(chǔ)方面我的建議是一超多強(qiáng),也就是有一個(gè)或者幾個(gè)小的地方特別精通,但是廣度要有,不要盲目追求mq這些東西,實(shí)際的面試還是以(408-計(jì)算機(jī)組成)+數(shù)據(jù)庫為主的,也就是說當(dāng)你os、網(wǎng)絡(luò)、數(shù)據(jù)庫還不錯(cuò)的時(shí)候已經(jīng)滿足了進(jìn)大廠的需求,再熟悉兩個(gè)知名中間件,就可以去收割了,應(yīng)屆生不建議死磕分布式、微服務(wù)之類的東西,很容易搞崩自己的心態(tài)。事實(shí)上我的數(shù)據(jù)庫因?yàn)樵诿悦F谧x了掘金小冊(cè)和innodb存儲(chǔ)引擎兩個(gè),所以理論知識(shí)較為扎實(shí),但我的os非常差,只能講講進(jìn)程線程內(nèi)存這些基礎(chǔ)的,但還是有了些小的offer,所以大家一定不要貪多。另外語言方向我只懂Java,一些小的建議就是Java開發(fā)要有能力把os的問題全扯到虛擬機(jī)和并發(fā)上來,另外Java的源碼不一定追spring,但是juc和util下的集合之類的一定要有理解,尤其是阿里之類的真的會(huì)為源碼第一行是什么的,千萬要謹(jǐn)記。
另外可以記住類似于雙重校驗(yàn)之類的思路,還有不要死記硬背,比如虛擬機(jī)的類加載器不要只看書,其實(shí)源碼很簡單的流程,可能只需要半天你就從背書仔到了源碼大佬,很多事情一定要進(jìn)去,不要在外面觀摩。
這里給大家推薦一些源碼筆記吧,覺得對(duì)自己的幫助非常大。
并發(fā)編程核心筆記(必看)
并發(fā)編程共享模型篇
- 并發(fā)編程概覽
- 進(jìn)程與線程
- Java線程
- 共享模型之管程
- 共享模型之內(nèi)存
- 共享模型之無鎖
- 共享模型之不可變
- 共享模型之工具
模式篇
應(yīng)用篇
原理篇
JVM從入門到入魔 筆記
- JVM內(nèi)存區(qū)域劃分
- JVM執(zhí)行子系統(tǒng)
- 垃圾回收器和內(nèi)存分配策略
- 編寫高效優(yōu)雅Java程序
- 性能優(yōu)化
- JVM常見面試題指南
MySql性能調(diào)優(yōu)
- MySQL 常用對(duì)象
- MySQL體系結(jié)構(gòu),存儲(chǔ)引擎及SQL優(yōu)化
- MySQL緩存,參數(shù)調(diào)整及鎖
- MySQL 常用工具、主從復(fù)制及綜合案例
備戰(zhàn)秋招資料庫
簡歷
我的簡歷一般都會(huì)過篩選,至今只被三七和圖森未來刷掉,但我其實(shí)個(gè)人經(jīng)歷是非常少的,所以我的建議就是寫好自己的教育經(jīng)歷,至于跨考生,可以先寫自己的碩士專業(yè),然后本科專業(yè)先不寫,不用硬套模版,這里建議超級(jí)簡歷,可以根據(jù)自己的喜好進(jìn)行一些設(shè)置。在投遞簡歷的時(shí)候盡量選擇內(nèi)推郵箱,原因在:1,響應(yīng)快,2,可以用自己的簡歷模板。這里想給大家強(qiáng)調(diào)一個(gè)誤區(qū),對(duì)于技術(shù)崗來說,簡歷真的只在初篩時(shí)有用。(很多公司還是看的我的春招簡歷,也給過了),這就要求我們的簡歷一定要做好減法,怎么樣剛夠又不會(huì)給自己挖坑呢?這里留白我會(huì)貼一下我的技能棧,另外實(shí)習(xí)經(jīng)歷似乎也不是越多越好,我一直只貼了我的美團(tuán)實(shí)習(xí),再加2到3個(gè)小項(xiàng)目點(diǎn)綴一下,就可以進(jìn)行投遞了,千萬不要寫太多給自己挖坑,大部門面試官還是對(duì)著簡歷面的。
項(xiàng)目
項(xiàng)目的話,相信是很多跨考黨和本科生的難點(diǎn),這里我建議??偷囊曨l課,這個(gè)很容易找得到,不用花很久,一個(gè)月的每半天足矣,我覺得最重要的是項(xiàng)目的完整度,就是大概要走完項(xiàng)目主流程,然后在某一個(gè)模塊進(jìn)行深挖,也就是針對(duì)自己的技能點(diǎn)去挖項(xiàng)目,而不是根據(jù)項(xiàng)目來找技能點(diǎn),比如,引入緩存模塊的時(shí)候自然而然嘗試redis各種api,這樣子就很容易熟悉項(xiàng)目,其實(shí)在面試的過程中最重要的是整個(gè)項(xiàng)目為何如此設(shè)計(jì),具體的點(diǎn)能答出幾個(gè)就很好了,刻意的去制造一些bug并嘗試一些解決方案,基本有一些這樣的思考,就可以找到一份不錯(cuò)的實(shí)習(xí),再在實(shí)習(xí)過程中接觸真實(shí)項(xiàng)目,真實(shí)項(xiàng)目最重要的是理順和拉通,因?yàn)樽约盒枰?fù)責(zé)的可能只是某個(gè)具體模塊,如果疏于思考而只注重接口實(shí)現(xiàn)就很容易陷入增刪改查的怪圈里。
但是項(xiàng)目對(duì)于學(xué)生而言的重要性遠(yuǎn)不如基礎(chǔ),過硬的基礎(chǔ)足夠?qū)ふ乙环莺芎玫墓ぷ?#xff0c;不要因小失大,項(xiàng)目只是為了對(duì)基礎(chǔ)的一些細(xì)節(jié)實(shí)現(xiàn)而服務(wù)的,其技術(shù)點(diǎn)遠(yuǎn)不如書上那么深入,項(xiàng)目中重要的其實(shí)是各種api各種中間件之間的比對(duì)過程中針對(duì)具體業(yè)務(wù)場(chǎng)景做的一些取舍,所以最重要的是還是基礎(chǔ),希望大家不要過于在意項(xiàng)目。如果真的沒有項(xiàng)目,就可以在幕課或??透粋€(gè)完整項(xiàng)目,勤奮點(diǎn)的話一個(gè)月綽綽有余就可以搞完,之后進(jìn)行嚴(yán)密思考即可。
面試
不知道大家會(huì)不會(huì)跟我一樣一開始特別討厭面試,而我現(xiàn)在特別喜歡面試,很愿意去面試。因?yàn)槊嬖囀撬协h(huán)節(jié)里自主性最大的,首先要有一定的信心:能讓我來面試,只要我的簡歷屬實(shí),那么證明我的硬性條件是符合公司要求的。那么面試就應(yīng)該是一個(gè)平等交流的過程,一開始我很容易怯場(chǎng),后來發(fā)現(xiàn)怯場(chǎng)反倒掛,每個(gè)人應(yīng)該拾起自己的信心,在面試中,合理的引導(dǎo)面試官進(jìn)入自己擅長的領(lǐng)域。如果發(fā)現(xiàn)自己沒有擅長的領(lǐng)域,就一定要有廣度,也就是說,廣度和深度必須至少有一個(gè):當(dāng)你某點(diǎn)特別突出,你要注意的是怎么讓面試官發(fā)現(xiàn)你這個(gè)點(diǎn)。當(dāng)你每個(gè)點(diǎn)都知道,但是不是很深入,就要多做發(fā)散性的引導(dǎo)。總體來說,大家如果好好準(zhǔn)備過的話,都或多或少有自己的亮點(diǎn),面試過程中一定要記住,對(duì)方也很愿意跟你交流現(xiàn)在應(yīng)屆生的技術(shù)棧和思路,每個(gè)程序員也是一個(gè)孤獨(dú)的人,面試的時(shí)候也是交朋友的過程,當(dāng)你覺得對(duì)方很愿意和你做朋友的時(shí)候,面試大概就過了。
總結(jié)
以上是生活随笔為你收集整理的阿里四面之后才懂得如何更好的学Java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java飞机大战游戏(需求分析+代码+图
- 下一篇: java手机 上网_Java也懂智能!