時(shí)隔兩年再一次的面臨離職找工作,這一次換工作有些許的不舍,也有些許的無(wú)奈。個(gè)人所在的技術(shù)團(tuán)隊(duì)不錯(cuò),兩年時(shí)間成長(zhǎng)了很多,也很不舍這個(gè)團(tuán)隊(duì)。但是,由于公司的某些原因和對(duì)于自身未來(lái)發(fā)展的綜合考慮,又不得不得離去,去尋找更合適的地方成長(zhǎng)和發(fā)展。相比于兩年前,現(xiàn)在找工作沒(méi)有那么的著急,也沒(méi)有那么的迫切,也沒(méi)有特別想去的公司,反正去大廠互聯(lián)網(wǎng)公司基本都是加班加點(diǎn)的。也許,這是工作十年的我即將面臨的一個(gè)坎吧。對(duì)于未來(lái)的選擇和考慮,對(duì)于未來(lái)的恐懼吧。也許我是杞人憂天,也許是上天注定我將去某一家公司,不管怎樣,堅(jiān)持做最好的自己!不停進(jìn)步,不停成長(zhǎng)!2面試匯總下面將最近面試遇到的一些題目進(jìn)行匯總?cè)缦拢M麑?duì)現(xiàn)在正在找工作的同學(xué)和現(xiàn)在面臨畢業(yè)找工作的同學(xué)有所幫助。
三個(gè)必須要重視的點(diǎn)
1、常用設(shè)計(jì)模式
單例模式:懶漢式、餓漢式、雙重校驗(yàn)鎖、靜態(tài)加載,內(nèi)部類(lèi)加載、枚舉類(lèi)加載。保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)。
代理模式:動(dòng)態(tài)代理和靜態(tài)代理,什么時(shí)候使用動(dòng)態(tài)代理。
適配器模式:將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類(lèi)可以一起工作。
裝飾者模式:動(dòng)態(tài)給類(lèi)加功能。
觀察者模式:有時(shí)被稱(chēng)作發(fā)布/訂閱模式,觀察者模式定義了一種一對(duì)多的依賴關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽(tīng)某一個(gè)主題對(duì)象。這個(gè)主題對(duì)象在狀態(tài)發(fā)生變化時(shí),會(huì)通知所有觀察者對(duì)象,使它們能夠自動(dòng)更新自己。
策略模式:定義一系列的算法,把它們一個(gè)個(gè)封裝起來(lái), 并且使它們可相互替換。
外觀模式:為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。
命令模式:將一個(gè)請(qǐng)求封裝成一個(gè)對(duì)象,從而使您可以用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化。
創(chuàng)建者模式:將一個(gè)復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。
抽象工廠模式:提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無(wú)需指定它們具體的類(lèi)。
2、基礎(chǔ)知識(shí)
Java基本類(lèi)型哪些,所占字節(jié)和范圍
Set、List、Map的區(qū)別和聯(lián)系
什么時(shí)候使用Hashmap
什么時(shí)候使用Linkedhashmap、Concurrenthashmap、Weakhashmap
哪些集合類(lèi)是線程安全的
為什么Set、List、map不實(shí)現(xiàn)Cloneable和Serializable接口
Concurrenthashmap的實(shí)現(xiàn),1.7和1.8的實(shí)現(xiàn)
Arrays.sort的實(shí)現(xiàn)
什么時(shí)候使用CopyOnArrayList
volatile的使用
synchronied的使用
reentrantlock的實(shí)現(xiàn)和Synchronied的區(qū)別
CAS的實(shí)現(xiàn)原理以及問(wèn)題
AQS的實(shí)現(xiàn)原理
接口和抽象類(lèi)的區(qū)別,什么時(shí)候使用
類(lèi)加載機(jī)制的步驟,每一步做了什么,static和final修改的成員變量的加載時(shí)機(jī)
雙親委派模型
反射機(jī)制:反射動(dòng)態(tài)擦除泛型、反射動(dòng)態(tài)調(diào)用方法等
動(dòng)態(tài)綁定:父類(lèi)引用指向子類(lèi)對(duì)象
JVM內(nèi)存管理機(jī)制:有哪些區(qū)域,每個(gè)區(qū)域做了什么
JVM垃圾回收機(jī)制:垃圾回收算法 垃圾回收器 垃圾回收策略
jvm參數(shù)的設(shè)置和jvm調(diào)優(yōu)
什么情況產(chǎn)生年輕代內(nèi)存溢出、什么情況產(chǎn)生年老代內(nèi)存溢出
內(nèi)部類(lèi):靜態(tài)內(nèi)部類(lèi)和匿名內(nèi)部類(lèi)的使用和區(qū)別
Redis和memcached:什么時(shí)候選擇redis,什么時(shí)候選擇memcached,內(nèi)存模型和存儲(chǔ)策略是什么樣的
MySQL的基本操作 主從數(shù)據(jù)庫(kù)一致性維護(hù)
mysql的優(yōu)化策略有哪些
mysql索引的實(shí)現(xiàn) B+樹(shù)的實(shí)現(xiàn)原理
什么情況索引不會(huì)命中,會(huì)造成全表掃描
java中bio nio aio的區(qū)別和聯(lián)系
為什么bio是阻塞的 nio是非阻塞的 nio是模型是什么樣的
Java io的整體架構(gòu)和使用的設(shè)計(jì)模式
Reactor模型和Proactor模型
http請(qǐng)求報(bào)文結(jié)構(gòu)和內(nèi)容
http三次握手和四次揮手
rpc相關(guān):如何設(shè)計(jì)一個(gè)rpc框架,從io模型 傳輸協(xié)議 序列化方式綜合考慮
Linux命令 統(tǒng)計(jì),排序,前幾問(wèn)題等
StringBuff 和StringBuilder的實(shí)現(xiàn),底層實(shí)現(xiàn)是通過(guò)byte數(shù)據(jù),外加數(shù)組的拷貝來(lái)實(shí)現(xiàn)的
cas操作的使用
內(nèi)存緩存和數(shù)據(jù)庫(kù)的一致性同步實(shí)現(xiàn)
微服務(wù)的優(yōu)缺點(diǎn)
線程池的參數(shù)問(wèn)題
ip問(wèn)題 如何判斷ip是否在多個(gè)ip段中
判斷數(shù)組兩個(gè)中任意兩個(gè)數(shù)之和是否為給定的值
樂(lè)觀鎖和悲觀鎖的實(shí)現(xiàn)
synchronized實(shí)現(xiàn)原理
你在項(xiàng)目中遇到的困難和怎么解決的
你在項(xiàng)目中完成的比較出色的亮點(diǎn)
消息隊(duì)列廣播模式和發(fā)布/訂閱模式的區(qū)別
生產(chǎn)者消費(fèi)者代碼實(shí)現(xiàn)
死鎖代碼實(shí)現(xiàn)
線程池:參數(shù),每個(gè)參數(shù)的作用,幾種不同線程池的比較,阻塞隊(duì)列的使用,拒絕策略
Future和ListenableFuture 異步回調(diào)相關(guān)
算法相關(guān):判斷能否從數(shù)組中找出兩個(gè)數(shù)字和為給定值,隨機(jī)生成1~10000不重復(fù)并放入數(shù)組,求數(shù)組的子數(shù)組的最大和,二分查找算法的實(shí)現(xiàn)及其時(shí)間復(fù)雜計(jì)算
3、其它
算法:常用排序算法,二分查找,鏈表相關(guān),數(shù)組相關(guān),字符串相關(guān),樹(shù)相關(guān)等
常見(jiàn)序列化協(xié)議及其優(yōu)缺點(diǎn)
memcached內(nèi)存原理,為什么是基于塊的存儲(chǔ)
搭建一個(gè)rpc需要準(zhǔn)備什么
如果線上服務(wù)器頻繁地出現(xiàn)full gc ,如何去排查
如果某一時(shí)刻線上機(jī)器突然量變得很大,服務(wù)扛不住了,怎么解決
LUR算法的實(shí)現(xiàn)
LinkedHashMap實(shí)現(xiàn)LRU
定義棧的數(shù)據(jù)結(jié)構(gòu),請(qǐng)?jiān)谠擃?lèi)型中實(shí)現(xiàn)一個(gè)能夠找到棧最小元素的min函數(shù)
海量數(shù)據(jù)處理的解決思路
reactor模型的演變
阻塞、非阻塞、同步、異步區(qū)別
Collection的子接口
jvm調(diào)優(yōu)相關(guān)
zookeeper相關(guān),節(jié)點(diǎn)類(lèi)型,如何實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)和服務(wù)注冊(cè)
nginx負(fù)載均衡相關(guān),讓你去實(shí)現(xiàn)負(fù)載均衡,該怎么實(shí)現(xiàn)
linux命令,awk、cat、sort、cut、grep、uniq、wc、top等
壓力測(cè)試相關(guān),怎么分析,單接口壓測(cè)和多情況下的壓測(cè)
你覺(jué)得你的有點(diǎn)是什么,你的缺點(diǎn)是什么
spring mvc的實(shí)現(xiàn)原理
netty底層實(shí)現(xiàn),IO模型,ChannelPipeline的實(shí)現(xiàn)和原理
緩存的設(shè)計(jì)和優(yōu)化
緩存和數(shù)據(jù)庫(kù)一致性同步解決方案
你所在項(xiàng)目的系統(tǒng)架構(gòu),談?wù)務(wù)w實(shí)現(xiàn)
消息隊(duì)列的使用場(chǎng)景
ActiveMQ、RabbitMQ、Kafka的區(qū)別
如果想學(xué)習(xí)Java工程化、高性能及分布式、深入淺出。性能調(diào)優(yōu)、Spring,MyBatis,Netty源碼分析的朋友可以加Java進(jìn)階群:629740746群里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費(fèi)分享給大家。
總結(jié)教你如何學(xué)習(xí)
1.源碼分析專(zhuān)題
詳細(xì)介紹源碼中所用到的經(jīng)典設(shè)計(jì)思想,看看大牛是如何寫(xiě)代碼的,提升技術(shù)審美、提高核心競(jìng)爭(zhēng)力。
幫助大家尋找分析源碼的切入點(diǎn),在思想上來(lái)一次巨大的升華。知其然,并知其所以然。把知識(shí)變成自己的
2.分布式架構(gòu)
互聯(lián)網(wǎng)時(shí)代,系統(tǒng)架構(gòu)如何迎接高并發(fā)流量的挑戰(zhàn)。而作為技術(shù)開(kāi)發(fā)者,如何去應(yīng)對(duì)技術(shù)變革帶來(lái)的技能危機(jī)。基于傳統(tǒng)架構(gòu)到分布式架構(gòu)演變過(guò)程所帶來(lái)的技術(shù)變革進(jìn)行全面深入講解。
在技術(shù)深度和技術(shù)廣度上得到飛躍的提升。成為互聯(lián)網(wǎng)行業(yè)所需要的T型人才
3.微服務(wù)架構(gòu)專(zhuān)題
應(yīng)對(duì)復(fù)雜的業(yè)務(wù)需求變更、用戶膨脹,SOA已成為現(xiàn)在互聯(lián)網(wǎng)公司標(biāo)準(zhǔn)的解決方案,微服務(wù)相關(guān)的框架正是為此而生。
4.Java架構(gòu)學(xué)習(xí)交流平臺(tái)
這里給大家提供一個(gè)學(xué)習(xí)交流的平臺(tái),java架構(gòu)師群:629740746
具有1-5工作經(jīng)驗(yàn)的,面對(duì)目前流行的技術(shù)不知從何下手,需要突破技術(shù)瓶頸的可以加群。
在公司待久了,過(guò)得很安逸,但跳槽時(shí)面試碰壁。需要在短時(shí)間內(nèi)進(jìn)修、跳槽拿高薪的可以加群。
如果沒(méi)有工作經(jīng)驗(yàn),但基礎(chǔ)非常扎實(shí),對(duì)java工作機(jī)制,常用設(shè)計(jì)思想,常用java開(kāi)發(fā)框架掌握熟練的可以加群。
5.性能優(yōu)化
全面認(rèn)識(shí)性能優(yōu)化這個(gè)理念,理解底層機(jī)制,助力科學(xué)調(diào)優(yōu) 實(shí)戰(zhàn)案例讓你不再只是旁觀者
6.工程化專(zhuān)題
不管是剛?cè)腴T(mén)的小白,還是才高八斗的資深開(kāi)發(fā)、架構(gòu),你都需要從這里開(kāi)始
1、掌握自動(dòng)化部署技能;
2、對(duì)于來(lái)時(shí)小白可以快速提升
3、對(duì)于資深開(kāi)發(fā)人群可以加分
7.雙11項(xiàng)目架構(gòu)實(shí)戰(zhàn)
上述的幾大專(zhuān)題我相信是很多程序員所需要的一個(gè)系統(tǒng)的學(xué)習(xí)路線吧?其實(shí)學(xué)習(xí)的方法有很多,很多人說(shuō)可以自學(xué),也對(duì)很多自學(xué)成才的。但是如果有一個(gè)為你指路的前輩呢?你可以少走許多許多彎路,你介意剩下很多很多的時(shí)間。只有在學(xué)習(xí)中不斷進(jìn)步而不是在學(xué)習(xí)中不斷的停下。
這個(gè)學(xué)習(xí)路線并不是空穴來(lái)風(fēng)的,我們有這樣一個(gè)路線讓所有人提升進(jìn)步,當(dāng)然我說(shuō)的你們可能都不信,眼見(jiàn)為實(shí)嘛。那么你們可以來(lái)看看啊