這些面試題是我在今年年初換工作的時候整理,沒有重點。包括java基礎,數據結構,網絡,Android相關等等。適合中高級工程師。由於內容過多,將會分爲上下兩部分。下部分跳轉鏈接:https://blog.csdn.net/u014644594/article/details/105920964
這裏是我整理出來的面試題,答案我花了很久的時間。加上我自己的理解整理出來的,作者不易,請諒解。有答案的:https://blog.csdn.net/u014644594/article/details/105921028
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的實現原理: