【2017春招·互聯網名企最新面經合集(持續更新) 1-25】html
來源:牛客網 https://zhuanlan.zhihu.com/p/26455288java
1. Java基礎
【JVM】mysql
知識點整理博客:詳細介紹Java虛擬機(JVM)linux
重點知識點:面試
- JVM內存分配和回收(五大數據區、棧堆分別存儲的內容)
- JVM三大機制(尤爲是類加載機制、類加載過程)
- 雙親委派模式及如何破壞
面試題集錦:正則表達式
- JVM內存模型(五大數據區域、堆棧、標記壓縮/標記清除,年輕/老年/永久)
- JVM堆棧靜態區分別存儲的內容
- JVM的類加載機制(ClassLoader),雙親委派、破壞雙親委派機制
- 垃圾回收 (GC,如何判斷一個對象不可達)
- 剛剛說的GC Root,有哪些對象能夠當作GC Root呢?
- JVM可視化工具
【集合框架】算法
知識點整理博客:Java集合框架梳理(含經典面試題)spring
重點知識點:sql
- 集合框架的各個接口、類的區別
- HashMap:底層實現、線程安全、hashCode()和equals()方法、與其餘集合類的區別、哈希碰撞
- Map的遍歷
面試題集錦:shell
- 經常使用的集合框架(LinkedList, ArrayList, HashMap等等)
- HashMap的底層實現
- 在多線程的條件下HashMap安全嗎,會怎讓解決這個問題呢?(ConcurrentHashMap)
- ConcurrentHashMap和HashTable什麼區別
- hashCode和equals方法的區別與聯繫
- hashtable和hashmap的區別
- 線程安全和不安全的map:hashmap treemap hashtable concurrenthashmap. collections.synchronizedmap
- hashtable怎麼實現線程安全:synchronized
- hashmap存數據的過程,以及怎麼肯定是更新和插入。
- hashmap的iterator讀取時是否會讀到另外一個線程put的數據
- 哈希表處理衝突的方法
- List和Set區別
- HashSet如何實現,for遍歷集合能進行刪除操做嗎?
- 說一下 java中的隊列、set、map 區別,java裏的數據結構。講講它們的實現。
- Map、EntrySet和KeySet哪一個效率更高?
【進程和線程】
知識點博客整理:
Java多線程(一) —— 線程的狀態詳解
Java多線程(二) —— 線程安全、線程同步、線程間通訊(含面試題集)
重點知識點:
- 線程的集中狀態及狀態間的切換
- 多線程的優缺點
- 線程安全(同步、鎖)
- 線程間通訊
- 幾個重要方法的做用:join()、sleep()、wait()、yeild() ...
- 幾個重要關鍵詞: volatile、synchronized、Lock
面試題集錦:
- 線程幾種狀態
- 建立線程的4中方式
- sleep() 和wait() 的區別
- 多線程框架講一講
- 進程之間通訊的方式
- 多線程的好處
- 若是兩個線程都使用一個ByteBuf 怎麼保證它的安全,具體說一下代碼實現
- 多線程安全、線程join、線程池(newFixedThreadPool有幾種)、CountDownLatch、信號量
- 三個線程的實現方式,線程中的同步
- 併發、併發中的threadlocal介紹、原理
- 講一講鎖,volatile、synchronized、Lock
- 鎖機制以及幾種鎖的原理以及區別
- synchronized和lock的區別,你用過哪些鎖。
- 多線程同步,java中線程安全的類
【關鍵字】
知識點整理博客:Java 面試總結(一) —— 面試常問的關鍵字總結
重點知識點:
- final finalize finally
- throws和throw
- static關鍵字的做用
- abstract 和 interface
- super 和 this
- synchronize 和 volatile
面試題集錦:
- final finalize finally
- throws throw 怎麼用?
- static關鍵字的做用
- abstract 關鍵字的做用,何時用
- 子類中如何調用父類的構造器,若是不用super關鍵字呢?有其餘的方式嗎?(this.(參數表)----- 本類)
- synchronize關鍵字的使用
【String】
重點知識點:
【IO】
知識點整理博客:
Java I/O 工做機制(一) —— Java 的 I/O 類庫的基本架構
Java I/O 工做機制(二) —— Java 的 I/O 的交互方式分析
重點知識點:
- 字節流、字符流各自的操做類及互相轉換
- NIO和BIO
- 同步異步、阻塞非阻塞
面試題集錦:
- IO哪一個類能夠Byte轉String(InputSteamReader/OutputSteamWriter)
- IO模型
- NIO和BIO的區別
- 如何輸出文件夾下的全部文件
【設計模式】
知識點整理博客:Java設計模式
重點知識點:
- 瞭解常見的幾種設計模式:代理模式、包裝模式、工廠模式...
面試題集錦:
- 設計模式知道哪些?JDK或其它框架中有哪些設計模式?代理模式和包裝模式
2. 數據結構(hashmap、二叉樹、TreeMap )
hash一致性的原理
二叉樹的遍歷
二叉樹的前序遍歷,說下怎麼實現,不用遞歸實現呢? 還有其餘的方式嗎?它們的區別
索引實現原理B+樹(重要),爲何就能實現查詢效率提升 等(都喜歡問b+樹的特色)
3.數據庫(MySQL)
Mysql數據庫優化方式
MySQL的默認事務隔離級別,有什麼用
MongoDB用過不,此處回答學習分佈式數據庫時候用到過,問和mysql的區別(很簡單,關係型和非關係型,一個是表的形式,一個是json形式存儲)。
mysql數據庫鏈接池的驅動參數
數據庫鏈接池如何防止失效
事務acid,mysql怎麼實現特性的(acid),事務隔離級別(四條),怎麼實現的,可重複讀和不可重複讀的區別,髒讀和幻讀什麼意思。
事務級別的序列化怎麼實現的,有排它鎖
mysql的索引(又是B+樹)
4. 框架問題(SpringMVC、設計模式、Spring AOP IOC、Mybatis)
SpringMVC工做原理
MyBatis 的使用,多個查詢可否用一個鏈接
Spring的加載流程,Spring的源碼中Bean的構造的流程
spring 特性 ,IOC AOP解釋
介紹一下springmvc,隨便說,spring mvc工做流程
mybatis的#和$號區別
AOP的思想,Spring注入的方式
Redis的一致性哈希算法
5. JavaWeb(JSP、Servlet、Session、HTTP、Filter)
Filter什麼狀況用到了
服務器端Session的保存
各類Web認證
6. 計算機網絡
TCP的三次握手和四次揮手
TCP和UDP的區別
tcp
滑動窗口
tcp
狀態碼
SOAP
協議、
HTTP
的某個協議
http
的數據包格式
tcp
包含
ip
麼
tcp
的數據包格式
http狀態碼:200,202,301,302,304,404,500等
7. 操做系統
有沒有用到過Linux的底層一點命令,查看堆棧之類的
linux權限控制
linux的顯示文件夾大小 ls -al
linux的查看端口狀態 natstat加參數
linux的查看進程的啓動時間 linux ps
日期時間戳、SimpleDateFormat線程安全問題、ThreadLocal
8. 算法(排序)
知識點整理博客:排序算法總結及Java實現
- 介紹快速排序
- 堆排,若是從若干數中找最大N個數用最大堆仍是最小堆?
- 二分查找
9. 項目
你項目中用到哪些設計模式。
作過的項目
開發中遇到的問題
10. 開放式問題
最後有什麼問題想問(大家這個職位注重啥)
評價本身優缺點,業餘愛好,最近在看什麼書
說一下數據結構,有一個很長的鏈表,找出倒數第k個元素。不用兩個指針呢?他們以前有什麼區別?面試官更想聽你說的第二種實現。
前臺中有兩個輸入框a和b,在a輸入框輸入數據而且點擊一按鈕後b輸入框響應顯示a的數據,而後點擊一個按鈕後,將數據提交到後臺,後臺處理後返回前臺,具體的邏輯過程
JIT(沒反應過來)、進制轉
Long、AtomicLong、LongAdder(JDK 8)以及JDK 8新特性
正則表達式:電話、郵箱,正則表達式解析。Linux shell查找指定線程、export用法
講講思路:一個1G文件裏面都是字符串,每一行只有一個字符串,字符串最大16個字節,實現不超過1M空間下找出重複次數最多的前100個字符串;
5. 兩個系統之間怎麼通信
------------------- 待整理 -----------------