主要分為以下幾部分:
(1)java面試題
(2)Android面試題
(3)混合開發(fā)面試題
(4)高端技術面試題
(5)非技術性問題&HR問題匯總
一、java面試題
熟練掌握java是很關鍵的竹习,大公司不僅僅要求你會使用幾個api,更多的是要你熟悉源碼實現(xiàn)原理碍讨,甚至要你知道有哪些不足含末,怎么改進晤愧,還有一些java有關的一些算法泳梆,設計模式等等武翎。
(一) java基礎面試知識點
java中==和equals和hashCode的區(qū)別
(1)==
1.基本數(shù)據(jù)類型
byte,short,char,int,long,float,double,boolean 他們之間的比較烈炭,應用雙等號(==),比較的是他們的值。
2.引用類型(類宝恶、接口符隙、數(shù)組)
當他們用(==)進行比較的時候,比較的是他們在內存中的存放地址垫毙,所以霹疫,除非是同一個new出來的對象,他們的比較后的結果為true综芥,否則比較后結果為false丽蝎。
對象是放在堆中的,棧中存放的是對象的引用(地址)膀藐。由此可見'=='是對棧中的值進行比較的屠阻。如果要比較堆中對象的內容是否相同,那么就要重寫equals方法了额各。
(2)equals
1国觉、默認情況(沒有覆蓋equals方法)下equals方法都是調用Object類的equals方法,而Object的equals方法主要用于判斷對象的內存地址引用是不是同一個地址(是不是同一個對象)虾啦。定義的equals與==是等效的
2 麻诀、要是類中覆蓋了equals方法痕寓,那么就要根據(jù)具體的代碼來確定equals方法的作用了,覆蓋后一般都是通過對象的內容是否相等來判斷對象是否相等蝇闭。
(3)hashCode
配合散列的集合 呻率,元素不可重復。元素太多的用equals判斷效率不高丁眼,先判斷hash值 筷凤,hash相等在判斷equals
int、char苞七、long各占多少字節(jié)數(shù)
int與integer的區(qū)別
1.int是基本的數(shù)據(jù)類型,直接存數(shù)值; 2.Integer是int的封裝類;integer是對象藐守,用一個引用指向這個對象
談談對java多態(tài)的理解
多態(tài)的實現(xiàn)的必要條件:繼承,重寫蹂风,父類引用指向子類對象
a. 面向對象的三大特性:封裝卢厂、繼承、多態(tài)惠啄。從一定角度來看慎恒,封裝和繼承幾乎都是為多態(tài)而準備的。這是我們最后一個概念撵渡,也是最重要的知識點融柬。
b. 多態(tài)的定義:指允許不同類的對象對同一消息做出響應。即同一消息可以根據(jù)發(fā)送對象的不同而采用多種不同的行為方式趋距。(發(fā)送消息就是函數(shù)調用)
c. 實現(xiàn)多態(tài)的技術稱為:動態(tài)綁定(dynamic binding)粒氧,是指在執(zhí)行期間判斷所引用對象的實際類型,根據(jù)其實際的類型調用其相應的方法节腐。
d. 多態(tài)的作用:消除類型之間的耦合關系外盯。
String、StringBuffer翼雀、StringBuilder區(qū)別
String 字符串常量
StringBuffer 字符串變量(線程安全)
StringBuilder 字符串變量(非線程安全)
什么是內部類饱苟?內部類的作用
抽象類和接口區(qū)別
抽象類的意義
抽象類與接口的應用場景
抽象類是否可以沒有方法和屬性?
接口的意義
泛型中extends和super的區(qū)別
父類的靜態(tài)方法能否被子類重寫
進程和線程的區(qū)別
final狼渊,finally箱熬,finalize的區(qū)別
序列化的方式
Serializable 和Parcelable 的區(qū)別
靜態(tài)屬性和靜態(tài)方法是否可以被繼承?是否可以被重寫狈邑?以及原因坦弟?
靜態(tài)內部類的設計意圖
成員內部類、靜態(tài)內部類官地、局部內部類和匿名內部類的理解酿傍,以及項目中的應用
談談對kotlin的理解
閉包和局部內部類的區(qū)別
string 轉換成 integer的方式及原理
(二) java深入源碼級的面試題(有難度)
哪些情況下的對象會被垃圾回收機制處理掉?
講一下常見編碼方式驱入?
utf-8編碼中的中文占幾個字節(jié)赤炒;int型幾個字節(jié)氯析?
靜態(tài)代理和動態(tài)代理的區(qū)別,什么場景使用莺褒?
Java的異常體系
談談你對解析與分派的認識掩缓。
修改對象A的equals方法的簽名,那么使用HashMap存放這個對象實例的時候遵岩,會調用哪個equals方法你辣?
Java中實現(xiàn)多態(tài)的機制是什么?
如何將一個Java對象序列化到文件里尘执?
說說你對Java反射的理解
說說你對Java注解的理解
說說你對依賴注入的理解
說一下泛型原理舍哄,并舉例說明
Java中String的了解
String為什么要設計成不可變的?
Object類的equal和hashCode方法重寫誊锭,為什么表悬?