這些面試題是我在今年年初換工作的時候整理,沒有重點。包括java基礎,數據結構,網絡,Android相關等等。適合中高級工程師。由於內容過多,將會分為上下兩部分。下部分跳轉鏈接:http://www.cnblogs.com/huangjialin/p/8657696.html
這里是我整理出來的面試題,答案我花了很久的時間。加上我自己的理解整理出來的,作者不易,請諒解。有答案的:https://xiaozhuanlan.com/topic/1493506827
1、java中==和equals和hashCode的區別
2、int與integer的區別
3、String、StringBuffer、StringBuilder區別
4、什么是內部類?內部類的作用
5、進程和線程的區別
6、final,finally,finalize的區別
7、Serializable 和Parcelable 的區別
8、靜態屬性和靜態方法是否可以被繼承?是否可以被重寫?以及原因?
9、成員內部類、靜態內部類、局部內部類和匿名內部類的理解,以及項目中的應用
10、string 轉換成 integer的方式及原理
11、哪些情況下的對象會被垃圾回收機制處理掉?
12、靜態代理和動態代理的區別,什么場景使用?
14、Java中實現多態的機制是什么?
16、說說你對Java反射的理解
17、說說你對Java注解的理解
18、Java中String的了解
19、String為什么要設計成不可變的?
20、Object類的equal和hashCode方法重寫,為什么?
21、List,Set,Map的區別
22、ArrayMap和HashMap的對比
23、HashMap和HashTable的區別
24、HashMap與HashSet的區別
25、HashSet與HashMap怎么判斷集合元素重復?
26、ArrayList和LinkedList的區別,以及應用場景
27、數組和鏈表的區別
28、開啟線程的三種方式?
29、線程和進程的區別?
30、run()和start()方法區別
31、如何控制某個方法允許並發訪問線程的個數?
32、在Java中wait和seelp方法的不同;
33、談談wait/notify關鍵字的理解
43、什么導致線程阻塞?線程如何關閉?
35、如何保證線程安全?
36、如何實現線程同步?
37、線程間操作List
38、談談對Synchronized關鍵字,類鎖,方法鎖,重入鎖的理解
39、synchronized 和volatile 關鍵字的區別
40、ReentrantLock 、synchronized和volatile比較
41、死鎖的四個必要條件?
42、什么是線程池,如何使用?
43、Java中堆和棧有什么不同?
44、有三個線程T1,T2,T3,怎么確保它們按順序執行?
45、AsyncTask的工作原理
46、Binder的工作機制
47、view的事件分發和view的工作原理
48、Android中性能優化
49、加密算法(base64、MD5、對稱加密和非對稱加密)和使用場景。
50、HashMap的實現原理: