金九銀十,各大互聯(lián)網(wǎng)公司Java面試題合集

又到了面試求職高峰期,最近有很多網(wǎng)友都在求大廠面試題。正好我之前電腦里面有這方面的整理,于是就發(fā)上來分享給大家。
這些題目是網(wǎng)友去百度、小米、樂視、美團(tuán)、58、獵豹、360、新浪、搜狐等一線互聯(lián)網(wǎng)公司面試被問到的題目,熟悉本文中列出的知識點(diǎn)會大大增加通過前兩輪技術(shù)面試的幾率。
網(wǎng)上的都是按照公司劃分的,想找具體某一方面的知識點(diǎn)有點(diǎn)不好找,我這里就根據(jù)知識點(diǎn)分門別類的整理了一下,想看哪一塊可以快速找到,希望可以幫助大家,祝大家求職順利。
主要分為以下幾部分:
(1)Java基礎(chǔ)、架構(gòu)面試題
(2)非技術(shù)性問題&HR問題匯總
一、Java面試題
熟練掌握J(rèn)ava是很關(guān)鍵的,大公司不僅僅要求你會使用幾個api,更多的是要你熟悉源碼實(shí)現(xiàn)原理,甚至要你知道有哪些不足,怎么改進(jìn),還有一些Java有關(guān)的一些算法,設(shè)計(jì)模式等等。
1、Java基礎(chǔ)面試知識點(diǎn)
Java中==和equals和hashCode的區(qū)別
int、char、long各占多少字節(jié)數(shù)
int與integer的區(qū)別
探探對Java多態(tài)的理解
String、StringBuffer、StringBuilder區(qū)別
什么是內(nèi)部類?內(nèi)部類的作用
抽象類和接口區(qū)別
抽象類的意義
抽象類與接口的應(yīng)用場景
抽象類是否可以沒有方法和屬性?
接口的意義
泛型中extends和super的區(qū)別
父類的靜態(tài)方法能否被子類重寫
進(jìn)程和線程的區(qū)別
final,finally,finalize的區(qū)別
序列化的方式
Serializable 和Parcelable 的區(qū)別
靜態(tài)屬性和靜態(tài)方法是否可以被繼承?是否可以被重寫?以及原因?
靜態(tài)內(nèi)部類的設(shè)計(jì)意圖
成員內(nèi)部類、靜態(tài)內(nèi)部類、局部內(nèi)部類和匿名內(nèi)部類的理解,以及項(xiàng)目中的應(yīng)用
談?wù)剬otlin的理解
閉包和局部內(nèi)部類的區(qū)別
2、 Java深入源碼級的面試題(有難度)
哪些情況下的對象會被垃圾回收機(jī)制處理掉?
講一下常見編碼方式?
utf-8編碼中的中文占幾個字節(jié);int型幾個字節(jié)?
靜態(tài)代理和動態(tài)代理的區(qū)別,什么場景使用?
Java的異常體系
談?wù)勀銓馕雠c分派的認(rèn)識。
修改對象A的equals方法的簽名,那么使用HashMap存放這個對象實(shí)例的時候,會調(diào)用哪個equals方法?
Java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么?
如何將一個Java對象序列化到文件里?
說說你對Java反射的理解
說說你對Java注解的理解
說說你對依賴注入的理解
說一下泛型原理,并舉例說明
Java中String的了解
String為什么要設(shè)計(jì)成不可變的?
Object類的equal和hashCode方法重寫,為什么?
3、數(shù)據(jù)結(jié)構(gòu)
常用數(shù)據(jù)結(jié)構(gòu)簡介
并發(fā)集合了解哪些?
列舉java的集合以及集合之間的繼承關(guān)系
集合類以及集合框架
容器類介紹以及之間的區(qū)別(容器類估計(jì)很多人沒聽這個詞,Java容器主要可以劃分為4個部分:List列表、Set集合、Map映射、工具類(Iterator迭代器、Enumeration枚舉類、Arrays和Collections),具體的可以看看這篇博文 Java容器類)
List,Set,Map的區(qū)別
List和Map的實(shí)現(xiàn)方式以及存儲方式
HashMap的實(shí)現(xiàn)原理
HashMap數(shù)據(jù)結(jié)構(gòu)?
HashMap源碼理解
HashMap如何put數(shù)據(jù)(從HashMap源碼角度講解)?
HashMap怎么手寫實(shí)現(xiàn)?
ConcurrentHashMap的實(shí)現(xiàn)原理
ArrayMap和HashMap的對比
HashTable實(shí)現(xiàn)原理
TreeMap具體實(shí)現(xiàn)
HashMap和HashTable的區(qū)別
HashMap與HashSet的區(qū)別
HashSet與HashMap怎么判斷集合元素重復(fù)?
集合Set實(shí)現(xiàn)Hash怎么防止碰撞
ArrayList和LinkedList的區(qū)別,以及應(yīng)用場景
數(shù)組和鏈表的區(qū)別
二叉樹的深度優(yōu)先遍歷和廣度優(yōu)先遍歷的具體實(shí)現(xiàn)
堆的結(jié)構(gòu)
堆和樹的區(qū)別
堆和棧在內(nèi)存中的區(qū)別是什么(解答提示:可以從數(shù)據(jù)結(jié)構(gòu)方面以及實(shí)際實(shí)現(xiàn)方面兩個方面去回答)?
什么是深拷貝和淺拷貝
手寫鏈表逆序代碼
講一下對樹,B+樹的理解
講一下對圖的理解
判斷單鏈表成環(huán)與否?
鏈表翻轉(zhuǎn)(即:翻轉(zhuǎn)一個單項(xiàng)鏈表)
合并多個單有序鏈表(假設(shè)都是遞增的)
4、 線程、多線程和線程池
開啟線程的三種方式?
線程和進(jìn)程的區(qū)別?
為什么要有線程,而不是僅僅用進(jìn)程?
run()和start()方法區(qū)別
如何控制某個方法允許并發(fā)訪問線程的個數(shù)?
在Java中wait和seelp方法的不同;
談?wù)剋ait/notify關(guān)鍵字的理解
什么導(dǎo)致線程阻塞?
線程如何關(guān)閉?
講一下Java中的同步的方法
數(shù)據(jù)一致性如何保證?
如何保證線程安全?
如何實(shí)現(xiàn)線程同步?
兩個進(jìn)程同時要求寫或者讀,能不能實(shí)現(xiàn)?如何防止進(jìn)程的同步?
線程間操作List
Java中對象的生命周期
Synchronized用法
synchronize的原理
談?wù)剬ynchronized關(guān)鍵字,類鎖,方法鎖,重入鎖的理解
static synchronized 方法的多線程訪問和作用
同一個類里面兩個synchronized方法,兩個線程同時訪問的問題
volatile的原理
談?wù)剉olatile關(guān)鍵字的用法
談?wù)剉olatile關(guān)鍵字的作用
談?wù)凬IO的理解
synchronized 和volatile 關(guān)鍵字的區(qū)別
synchronized與Lock的區(qū)別
ReentrantLock 、synchronized和volatile比較
ReentrantLock的內(nèi)部實(shí)現(xiàn)
lock原理
死鎖的四個必要條件?
怎么避免死鎖?
對象鎖和類鎖是否會互相影響?
什么是線程池,如何使用?
Java的并發(fā)、多線程、線程模型
談?wù)剬Χ嗑€程的理解
多線程有什么要注意的問題?
談?wù)勀銓Σl(fā)編程的理解并舉例說明
談?wù)勀銓Χ嗑€程同步機(jī)制的理解?
如何保證多線程讀寫文件的安全?
多線程斷點(diǎn)續(xù)傳原理
斷點(diǎn)續(xù)傳的實(shí)現(xiàn)
5、并發(fā)編程有關(guān)知識點(diǎn)
學(xué)習(xí)的參考資料如下:
Java 內(nèi)存模型
Java線程安全總結(jié)
深入理解java內(nèi)存模型系列文章
線程狀態(tài):
一張圖讓你看懂JAVA線程間的狀態(tài)轉(zhuǎn)換
鎖機(jī)制:synchronized、Lock、Condition
Java 中的鎖
并發(fā)編程:
Java并發(fā)編程:Thread類的使用
Java多線程編程總結(jié)
Java并發(fā)編程的總結(jié)與思考
Java并發(fā)編程實(shí)戰(zhàn)—–synchronized
深入分析ConcurrentHashMap
6、架構(gòu)設(shè)計(jì)和設(shè)計(jì)模式
談?wù)勀銓ndroid設(shè)計(jì)模式的理解
MVC MVP MVVM原理和區(qū)別
你所知道的設(shè)計(jì)模式有哪些?
項(xiàng)目中常用的設(shè)計(jì)模式
手寫生產(chǎn)者/消費(fèi)者模式
寫出觀察者模式的代碼
適配器模式,裝飾者模式,外觀模式的異同?
用到的一些開源框架,介紹一個看過源碼的,內(nèi)部實(shí)現(xiàn)過程。
談?wù)剬xJava的理解
RxJava的功能與原理實(shí)現(xiàn)
RxJava的作用,與平時使用的異步操作來比的優(yōu)缺點(diǎn)
說說EventBus作用,實(shí)現(xiàn)方式,代替EventBus的方式
從0設(shè)計(jì)一款A(yù)pp整體架構(gòu),如何去做?
說一款你認(rèn)為當(dāng)前比較火的應(yīng)用并設(shè)計(jì)(比如:直播APP,P2P金融,小視頻等)
談?wù)剬ava狀態(tài)機(jī)理解
Fragment如果在Adapter中使用應(yīng)該如何解耦?
Binder機(jī)制及底層實(shí)現(xiàn)
對于應(yīng)用更新這塊是如何做的?(解答:灰度,強(qiáng)制更新,分區(qū)域更新)?
實(shí)現(xiàn)一個Json解析器(可以通過正則提高速度)
統(tǒng)計(jì)啟動時長,標(biāo)準(zhǔn)
7、性能優(yōu)化
如何對Android 應(yīng)用進(jìn)行性能分析以及優(yōu)化?
ddms 和 traceView
性能優(yōu)化如何分析systrace?
用IDE如何分析內(nèi)存泄漏?
Java多線程引發(fā)的性能問題,怎么解決?
啟動頁白屏及黑屏解決?
啟動太慢怎么解決?
怎么保證應(yīng)用啟動不卡頓?
App啟動崩潰異常捕捉
自定義View注意事項(xiàng)
現(xiàn)在下載速度很慢,試從網(wǎng)絡(luò)協(xié)議的角度分析原因,并優(yōu)化(提示:網(wǎng)絡(luò)的5層都可以涉及)。
Https請求慢的解決辦法(提示:DNS,攜帶數(shù)據(jù),直接訪問IP)
如何保持應(yīng)用的穩(wěn)定性
RecyclerView和ListView的性能對比
ListView的優(yōu)化
RecycleView優(yōu)化
View渲染
Bitmap如何處理大圖,如一張30M的大圖,如何預(yù)防OOM
java中的四種引用的區(qū)別以及使用場景
強(qiáng)引用置為null,會不會被回收?
8、NDK、jni、Binder、AIDL、進(jìn)程通信有關(guān)
請介紹一下NDK
什么是NDK庫?
jni用過嗎?
如何在jni中注冊native函數(shù),有幾種注冊方式?
Java如何調(diào)用c、c++語言?
jni如何調(diào)用Java層代碼?
進(jìn)程間通信的方式?
Binder機(jī)制
簡述IPC?
什么是AIDL?
AIDL解決了什么問題?
AIDL如何使用?
Android 上的 Inter-Process-Communication 跨進(jìn)程通信時如何工作的?
多進(jìn)程場景遇見過么?
Android進(jìn)程分類?
進(jìn)程和 Application 的生命周期?
進(jìn)程調(diào)度
談?wù)剬M(jìn)程共享和線程安全的認(rèn)識
談?wù)剬Χ噙M(jìn)程開發(fā)的理解以及多進(jìn)程應(yīng)用場景
什么是協(xié)程?
9、framework層、ROM定制、Ubuntu、Linux之類的問題
java虛擬機(jī)的特性
談?wù)剬vm的理解
JVM內(nèi)存區(qū)域,開線程影響哪塊內(nèi)存
對Dalvik、ART虛擬機(jī)有什么了解?
Art和Dalvik對比
虛擬機(jī)原理,如何自己設(shè)計(jì)一個虛擬機(jī)(內(nèi)存管理,類加載,雙親委派)
談?wù)勀銓﹄p親委派模型理解
JVM內(nèi)存模型,內(nèi)存區(qū)域
類加載機(jī)制
談?wù)剬lassLoader(類加載器)的理解
談?wù)剬討B(tài)加載(OSGI)的理解
內(nèi)存對象的循環(huán)引用及避免
內(nèi)存回收機(jī)制、GC回收策略、GC原理時機(jī)以及GC對象
垃圾回收機(jī)制與調(diào)用System.gc()區(qū)別
Ubuntu編譯安卓系統(tǒng)
系統(tǒng)啟動流程是什么?(提示:Zygote進(jìn)程 –> SystemServer進(jìn)程 –> 各種系統(tǒng)服務(wù) –> 應(yīng)用進(jìn)程)
大體說清一個應(yīng)用程序安裝到手機(jī)上時發(fā)生了什么
簡述Activity啟動全部過程
App啟動流程,從點(diǎn)擊桌面開始
邏輯地址與物理地址,為什么使用邏輯地址?
Android為每個應(yīng)用程序分配的內(nèi)存大小是多少?
Android中進(jìn)程內(nèi)存的分配,能不能自己分配定額內(nèi)存?
進(jìn)程?;畹姆绞?
如何保證一個后臺服務(wù)不被殺死?(相同問題:如何保證service在后臺不被kill?)比較省電的方式是什么?
App中喚醒其他進(jìn)程的實(shí)現(xiàn)方式
二、非技術(shù)性問題&HR問題匯總
這里整理的是一些與技術(shù)沒有直接關(guān)系的面試題,但是能夠考察你的綜合水平,所以不要以為不是技術(shù)問題,就不看,往往有時候就是這樣一些細(xì)節(jié)的題目被忽視,而錯過了一次次面試機(jī)會。
(一)非技術(shù)問題
介紹你做過的哪些項(xiàng)目
都使用過哪些框架、平臺?
都使用過哪些自定義控件?
研究比較深入的領(lǐng)域有哪些?
對業(yè)內(nèi)信息的關(guān)注渠道有哪些?
最近都讀哪些書?
有沒有什么開源項(xiàng)目?
自己最擅長的技術(shù)點(diǎn),最感興趣的技術(shù)領(lǐng)域和技術(shù)點(diǎn)
項(xiàng)目中用了哪些開源庫,如何避免因?yàn)橐腴_源庫而導(dǎo)致的安全性和穩(wěn)定性問題
實(shí)習(xí)過程中做了什么,有什么產(chǎn)出?
(二)HR提出的面試問題
您在前一家公司的離職原因是什么?
講一件你印象最深的一件事情
介紹一個你影響最深的項(xiàng)目
介紹你最檔案熱愛最擅長的專業(yè)領(lǐng)域
公司實(shí)習(xí)最大的收獲的英文什么?
與上級意見不一致時,你將怎么辦?
自己的優(yōu)點(diǎn)和缺點(diǎn)是什么?并舉例說明?
你的學(xué)習(xí)方法是什么樣的?實(shí)習(xí)過程中如何學(xué)習(xí)?實(shí)習(xí)項(xiàng)目中遇到的最大困難是什么以及如何解決的?
說一最件能證明你能力的事情
針對你你申請的這個職位,認(rèn)為你還你什么欠缺
如果通過這次面試我們單位錄用了你,但工作一段時間卻發(fā)現(xiàn)你根本不適合這個職位,你怎么辦?
項(xiàng)目中遇到最大的困難是什么?如何解決的?
你的職業(yè)規(guī)劃以及個人目標(biāo),發(fā)展未來路線及求職定位
如果你在這次面試中沒有被錄用,你怎么打算?
評價(jià)下自己,評價(jià)下自己的技術(shù)水平,個人代碼量如何?
通過哪些渠道了解的招聘信息,其他同學(xué)都 了哪些公司?
業(yè)余都有哪些愛好?
你做過的哪件事最令自己感到驕傲?
假如你晚上要去送一個出國的同學(xué)去機(jī)場,可單位臨時有事非你辦不可,你怎么辦?
就你申請的這個職位,你認(rèn)為你還欠缺什么?
當(dāng)前的報(bào)價(jià)狀況;如果BATH都給了報(bào)價(jià)該如何選?
你對一份工作更看重哪些方面平臺,技術(shù),氛圍,城市,還是錢
理想薪資范圍;杭州崗和北京崗選哪個?
理想中的工作環(huán)境是什么?
談?wù)勀銓μ鄣目捶?br />
說說你對文教,發(fā)展技術(shù)趨勢的看法
實(shí)習(xí)過程中周圍同事/同學(xué)有哪些值得學(xué)習(xí)的地方?
家人對你的工作期望及自己的工作期望
如果你的工作出現(xiàn)失誤,給本公司造成經(jīng)濟(jì)損失,你認(rèn)為該怎么辦?
若上司在公開會議上誤會你了,該如何解決?
是否可以實(shí)習(xí),可以實(shí)習(xí)多久?
在五年的時間內(nèi),的你職業(yè)規(guī)劃
你看中公司的什么?或者公司的那些方面最吸引你?
看完這些面試題是不是感覺面試很可怕,還有很多面試題沒有寫上來,面試不僅僅決定了你的薪資,在大廠面試直接給你定級,級別越高薪資也就越高,在公司待遇也不一樣,所以面試還是需要很認(rèn)真的去對待,曾經(jīng)有一位朋友被阿里面試官電話突擊面試,面試完以后簡直懷疑人生,所以想要進(jìn)大廠在面試上也需要花不少功夫,金九銀十找工作的人還是很多的,希望這些面試題能給大家一點(diǎn)幫助,喜歡的話可以分享給更多的人哦。
相關(guān)文章
- 面試一直是大家關(guān)注的問題,包括最近有很多人跟我講投了很多簡歷出去,就像泥牛入海一樣了無音訊了,今天我就來分享一個Java程序員面試拼多多后端開發(fā)崗位的幾輪面試題。2019-04-24
阿里余額寶團(tuán)隊(duì)Java4面:G1+二叉樹+線上調(diào)優(yōu)+MQ+Redis
這篇文章主要介紹了阿里余額寶團(tuán)隊(duì)Java4面:G1+二叉樹+線上調(diào)優(yōu)+MQ+Redis的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-12精選11道Java技術(shù)面試題及對應(yīng)答案【包含部分阿里和華為的面試題】
這篇文章主要為大家介紹了11道Java技術(shù)面試題及對應(yīng)答案,其中包含部分阿里和華為的面試題,總結(jié)分析了java常見的技術(shù)難點(diǎn)與java常見面試題,需要的朋友可以參考下2019-04-11記錄一次美團(tuán)+小米+VIPKId+CVTE的Java后臺開發(fā)面試經(jīng)歷
最近閑著給大家整理一下面試經(jīng)驗(yàn),包括美團(tuán)+小米+VIPKId+CVTE,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-11- 最近正值春招, 本文就把收集平時遇到的 Java 技術(shù)問題或周圍朋友見過的面試題分享給大家,題庫中所有的問題請看下文,考驗(yàn)?zāi)闼降臅r候到了。感興趣的可以了解一下2019-04-11
- JVM(Java 虛擬機(jī))算是面試必問的問題的了,而但凡問 JVM 一定會問的第一個問題就是:講一講 JVM 的組成?那本文就注重講一下 JVM 的組成,感興趣的可以了解一下2019-04-10
記一次京東Java研發(fā)崗社招面試(面試經(jīng)歷+真題總結(jié)+經(jīng)驗(yàn)分享)
這篇文章主要介紹了記一次京東Java研發(fā)崗社招面試(面試經(jīng)歷+真題總結(jié)+經(jīng)驗(yàn)分享)的相關(guān)資料,小編整理了一下本次面試的經(jīng)歷、真題等等,現(xiàn)在分享給大家,也給大家做個參考2019-04-09