大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) J給Java程序員準(zhǔn)備的中級Java面試題

J給Java程序員準(zhǔn)備的中級Java面試題

更新時(shí)間:2019-08-11 09:00:00 來源:動力節(jié)點(diǎn) 瀏覽3173次

如何學(xué)習(xí)計(jì)算機(jī)編程,快速學(xué)成就業(yè).jpg

  HashMap相關(guān)


  HashMap一直是經(jīng)典的面試題,所有面試官都喜歡問他,因?yàn)樗梢誀砍冻龇浅6嗟闹R點(diǎn),而面試者到底能了解到何種程度,則一定程度反映其綜合能力。


  細(xì)節(jié)聊擴(kuò)容因子LoadFactor=0.75,初始大小InitailCapacity=16


  縱向聊其底層實(shí)現(xiàn),數(shù)據(jù)結(jié)構(gòu)是數(shù)組+鏈表,提到j(luò)dk1.8之后對鏈表節(jié)點(diǎn)到達(dá)8之后轉(zhuǎn)換為紅黑樹加分。繼續(xù)追問的話便是引申出常用的數(shù)據(jù)結(jié)構(gòu):隊(duì)列,棧,樹,圖。


  橫向聊線程安全,HashMap為線程不安全,一般問多線程操作會導(dǎo)致其死循環(huán)的原因。與線程安全的ConcurrentHashMap對比,又?jǐn)U展到ConcurrentHashMap的實(shí)現(xiàn)。繼續(xù)追問的話便是引申出線程安全的定義,問一些常用的并發(fā)容器,考察面試者對java.util.concurrent包的掌握情況。那么至少可以牽扯出如下的問題:


  ConcurrentHashMap相關(guān)


  面試者可以先說歷史,1.8之前采用分段鎖,核心就是一句話:盡量降低同步鎖的粒度。1.8之后使用CAS思想代替冗雜的分段鎖實(shí)現(xiàn)。不出意料,面試者答出CAS之后必定會被追問其思想以及應(yīng)用,換做我自己的話會有如下思路作答:CAS采用樂觀鎖思想達(dá)到lockfree,提一下sun.misc.Unsafe中的native方法,至于CAS的其他應(yīng)用可以聊一聊Atomic原子類和一些無鎖并發(fā)框架(如Amino),提到ABA問題加分。


  線程安全與鎖


  線程安全這個(gè)詞也是面試的高頻詞,說完上面的并發(fā)容器,回頭說一說線程安全的定義,按照周志明大大的話回答私以為是極好的:


  當(dāng)多個(gè)線程訪問某個(gè)類時(shí),不管運(yùn)行時(shí)環(huán)境采用何種調(diào)度方式或者這些線程將如何交替進(jìn)行,并且在主調(diào)代碼中不需要任何額外的同步或協(xié)同,這個(gè)類都能表現(xiàn)出正確的行為,那么稱這個(gè)類是線程安全的


  通常與鎖一起出現(xiàn):除了synchronized之外,還經(jīng)常被問起的是juc中的Lock接口,其具體實(shí)現(xiàn)主要有兩種:可重入鎖,讀寫鎖。這些都沒問題的話,還會被詢問到分布式下的同步鎖,一般借助于中間件實(shí)現(xiàn),如Redis,Zookeeper等,開源的Redis分布式鎖實(shí)現(xiàn)有Redisson,回答注意點(diǎn)有兩點(diǎn):一是注意鎖的可重入性(借助于線程編號),二是鎖的粒度問題。除此之外就是一些juc的常用工具類如:CountdownLatch,CyclicBarrir,信號量


  線程


  創(chuàng)建線程有幾種方式:這個(gè)時(shí)候應(yīng)該毫不猶豫的回答1種。面試官會有些驚訝于你的回答,因?yàn)樗坪跛呀?jīng)習(xí)慣了聽到Thread和Runnable2種方式的“標(biāo)準(zhǔn)答案”。其實(shí),仔細(xì)審題會發(fā)現(xiàn),java創(chuàng)建線程只有一種方式:Thread。Runnable是代表任務(wù),無論是Callable,Runnable,ThreadPool,最終都是Thread,所以2種的回答一定是錯(cuò)誤的。


  設(shè)計(jì)模式


  如經(jīng)典的單例模式。當(dāng)被問到單例模式時(shí),私以為在有準(zhǔn)備的前提下,回答使用雙檢鎖的方式實(shí)現(xiàn)可以很好地誘導(dǎo)面試官。雙檢鎖實(shí)現(xiàn)線程安全的單例模式有兩塊注意點(diǎn):1鎖的粒度問題2靜態(tài)變量需要被volatile修飾。前者已經(jīng)被上文提過,重點(diǎn)是后者,必定會誘導(dǎo)面試官繼續(xù)詢問你有關(guān)volatile原則的問題,無非是happens-before原則或者JMM(java內(nèi)存模型)相關(guān)。前者只需要熟記幾條關(guān)鍵性的原則即可,而后者回答的重點(diǎn)便是需要提到主存與工作內(nèi)存的關(guān)系。


  工廠模式,觀察者模式,模板方法模式,策略模式,職責(zé)鏈模式等等,通常會結(jié)合Spring和UML類圖提問。


  JVM相關(guān)


  說實(shí)話,我自己對JVM的掌握幾乎完全來自于《深入理解java虛擬機(jī)》,加上一點(diǎn)點(diǎn)線上的經(jīng)驗(yàn)。初級崗位常問的問題也是固定的那么幾個(gè)。


  內(nèi)存分區(qū):主要就是堆和棧,嚴(yán)謹(jǐn)點(diǎn)回答可以答方法區(qū),虛擬機(jī)棧,本地方法棧,堆,程序計(jì)數(shù)器。聊一聊Hotspot在jdk1.7中將常量池移到了堆中,jdk1.8移除永久代用MetaSpace代替起碼可以佐證:你喜歡在一些JAVA群里面吹水。


  垃圾回收算法:新生代由于對象朝生夕死使用標(biāo)記-清除(or標(biāo)記-整理)算法,老年代生命力強(qiáng)使用復(fù)制算法。提到一句分代收集即可。


  垃圾回收器一兩個(gè)名字還是得叫的上來:Serial,Parallel,CMS,G1...


  如何判斷一個(gè)對象可以被回收:引用計(jì)數(shù)(可以提到Netty中的使用案例),可達(dá)性分析(JVM使用)


  IO相關(guān)


  bio,nio區(qū)別要熟知,了解nio中的ByteBuffer,Selector,Channel可以幫助面試者度過不少難關(guān)。幾乎提到nio必定會問netty,其實(shí)我分析了一下,問這個(gè)的面試官自己也不一定會,但就是有人喜歡問,所以咱們適當(dāng)應(yīng)付一下就好:一個(gè)封裝很好擴(kuò)展很好的nio框架,常用于RPC框架之間的傳輸層通信。


  反射


  聊一聊你對Java中反射的理解:運(yùn)行時(shí)操作一個(gè)類的神器,可以獲取構(gòu)造器,方法,成員變量,參數(shù)化類型...使用案例如Hibernate,BeanUtils。


  動態(tài)代理


  jdk動態(tài)代理和cglib動態(tài)代理的區(qū)別:前者需要實(shí)現(xiàn)一個(gè)接口,后者不需要;前者依賴于jdk提供的InvocationHandler,后者依賴于字節(jié)碼技術(shù);前者我還能寫一些代碼,后者完全不會。大概就這些差別了。


  2開源框架


  Tomcat


  我沒看過源碼,除了老生常談的雙親委托類加載機(jī)制,似乎只能問一些相關(guān)參數(shù)了。


  Spring


  比較煩的一件事便是:當(dāng)我還沒問全:“聊一聊你對Spring的理解”這句話時(shí),部分面試者的臉上已經(jīng)浮現(xiàn)出了笑容,并迫不及待的回答:AOP和IOC。這本無可厚非,但一旦這成了條件反射式的回答,便違背了面試的初衷。


  在面試中,Spring從狹義上可以被理解成SpringFramework&SpringMVC。而廣義上包含了Spring眾多的開源項(xiàng)目,如果面試者連spring.io都沒有訪問過,私以為是不應(yīng)該的扣分項(xiàng)。


  Spring常見的問題包括:SpringBean的scope取值,BeanFactory的地位,@Transactionl相關(guān)(傳播機(jī)制和隔離級別),SpringMVC工作流程


  SpringBoot


  SpringBoot是當(dāng)今最火的框架之一了,其starter模塊自動配置的思想是面試中經(jīng)常被問到的。如spring-boot-starter-data-jpa模塊會默認(rèn)配置JpaTransactionManager事務(wù)管理器,而spring-boot-starter-jdbc則會默認(rèn)配置DataSourceTransactionManager事務(wù)管理器,兩者的差異經(jīng)常被用來做對比。@ConditionalOnMissingBean,@ConditionalOnBean等注解作用也需要被掌握。


  JPA&Hibernate


  ORM的思想


  懶加載如何配置以及意義


  級聯(lián)如何配置,什么時(shí)候應(yīng)該使用級聯(lián)


  一級緩存:Session級別的緩存


  @Version的使用:數(shù)據(jù)庫的樂觀鎖


  數(shù)據(jù)庫


  這里的數(shù)據(jù)庫還是以傳統(tǒng)的RDBMS為主,由于存儲過程,觸發(fā)器等操作一般在互聯(lián)網(wǎng)公司禁止使用,所以基本傳統(tǒng)數(shù)據(jù)庫能問的東西也并不多。


  1.索引的分類有哪些?面試者可以嘗試自己分類回答。索引和唯一索引;聚集索引和非聚集索引;數(shù)據(jù)結(jié)構(gòu)可以分為Hash和B+樹索引;單列索引和聯(lián)合索引。常見的索引問題還包括(A,B,C)的聯(lián)合索引,查詢(B,C)時(shí)會不會走索引等一些數(shù)據(jù)庫的小細(xì)節(jié)。


  2.事務(wù)ACID的描述和隔離級別。


  3.mysql的explain查詢分析也是面試的重點(diǎn)對象,一條分析結(jié)果的查詢時(shí)間,影響行數(shù),走了哪些索引都是分析的依據(jù)。


  4.如果面試官問到存儲引擎,說實(shí)話也有點(diǎn)為了面試而面試的感覺,掌握基本的InnoDB和Myisam的區(qū)別即可。


  5.互聯(lián)網(wǎng)公司可能會比較關(guān)心面試者對分庫分表的掌握:mysql自帶的sharding為什么一般不使用?中間件級別和驅(qū)動級別的分庫分表,sharding-jdbc,cobar,mycat等開源組件的使用,分布式ID和分庫鍵的選擇也備受面試官的青睞。


  SpringCloud


  就我所了解的情況,國內(nèi)SpringCloud的普及程度還不是很高,但是SpringCloud的相關(guān)組件會被部分引用,這倒是很常見,所以簡歷中出現(xiàn)SpringCloud也會是一個(gè)初級JAVA的亮點(diǎn)。狹義上的SpringCloud指的是SpringCloudNetflix的那些構(gòu)建微服務(wù)的組件,廣義上還包含了Config,DataFlow,Gateway等項(xiàng)目。


  1.Feign,Ribbon,Eureka,Zuul的使用。了解各個(gè)組件的作用,會問一些常遇到的問題如Feign的重試機(jī)制,Eureka的保護(hù)機(jī)制,Zuul的路由機(jī)制等。


  2.SpringCloud使用的restfulhttp通信與RPC通信的對比。畢竟...這是一個(gè)經(jīng)久不衰的辯題,可以從耦合性,通信性能,異構(gòu)系統(tǒng)的互信等角度對比。


  本文的重點(diǎn)是你有沒有收獲與成長,其余的都不重要,希望讀者們能謹(jǐn)記這一點(diǎn)。同時(shí)動力節(jié)點(diǎn)經(jīng)過多年的也收集了一套完整的面試學(xué)習(xí)資料,感興趣的同學(xué),可以登錄動力節(jié)點(diǎn)IT培訓(xùn)官網(wǎng)咨詢在線客服老師。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 四虎国产精品永久在线看 | 久久黄色一级视频 | 国产精品久久久久久免费播放 | 九九热在线观看视频 | 日本在线色 | 妖精视频在线观看网站 | 亚洲 自拍 另类 制服在线 | 久久久免费视频观看 | 国产成年网站v片在线观看 国产成人 免费观看 | 久热只有精品 | 成人aaaa | 欧美性猛交xxx嘿人猛交 | 日本人69视频页码jlzz | 亚洲视频日韩视频 | 91福利在线免费观看 | 亚洲a视频在线 | 青青青视频在线 | 亚洲国产成人最新精品资源 | 免费国产小视频在线观看 | 青草视频国产 | 狠狠综合视频精品播放 | 欧美日韩国产成人高清视频 | 国产三级久久久精品麻豆三级 | 波多野结衣一区 | 欧美成人老熟妇暴潮毛片 | 精品免费国产一区二区三区 | 国产精品线在线精品 | 和日本免费不卡在线v | 99国产欧美久久精品 | 欧美日韩在线高清 | 亚洲精品高清视频 | 国产亚洲精品九九久在线观看 | 老司机午夜网站 | 国产精品久久久久aaaa | 免费福利影院 | 日日噜噜夜夜躁躁狠狠 | 成人在线一区二区 | 99精品热视频 | 天天操伊人 | 你懂得国产 | 九九视频在线观看视频23 |