歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 2016年Java服務器端開發面試總結

2016年Java服務器端開發面試總結

日期:2017/3/1 9:09:11   编辑:Linux編程

因為一些個人原因,陸陸續續參加了一些校招補招、社招的筆試和面試(BAT),也包括一些國外公司(Spotify, Google, Ericsson),最後有幸被網易收入麾下,拿到了S。下面羅列一些我復習中的要點,如果能以此為一個參考,做好充足的准備,國內BAT這些公司的基礎技術筆試和面試應該沒什麼問題。當然對於一些大公司,基礎知識可能不是最被看重的,關鍵是學習能力,獨立解決問題的能力,是否是一個"靈性"的人,我一直覺得我們程序員是在創造一個新的世界。

當然有一些技術老人,也可以看看這個,當作一個復習點,溫故知新。

Java 常見基礎知識面試點:

  • Hashcode()和equals(), 明白背後的原理,包括hashcode()的用法,各自的區別,如何,何時覆蓋,為何覆蓋
  • 區別new String()和"" 申明的字符串的區別,String不變量,堆上創建,何時棧上創建,傳遞變量時候的按值傳遞
  • Comparable 接口,Comparator類,用來做比較,主要是用於集合中,排序,插入等等
  • 類初始化,變量初始化,靜態變量,靜態區,常量區等等
  • 繼承多態需要知道的有super, this, 相應的可能涉及到的設計模式
  • Java的內部類,有哪幾種聲明方式,有沒有static的區別
  • 集合,collection,array。 set, list, queue這些接口間的區別,set不可重復, arraylist的實現和linkedlist的實現區別,HashMap, HashTable。涉及到各種效率問題等,裡面最好閱讀一下源碼
  • 集合的遍歷方法和使用iterator來遍歷的區別,集合可否修改,能否刪除其中的一個元素,然後size是否變化等等問題
  • JAVA垃圾回收,內存結構
  • 異常的種類
  • Object類,哪些方法
  • 文件讀取, 字節流和字符流, 流的概念, reader, stream等; NIO(通道,緩沖區,選擇器)

Java常見多線程面試點:

  • thread, start(), run()
  • 多線程裡面的關鍵字,wait, notfiy, 鎖(synchronized), lock接口
  • 線程狀態,上下文切換,守護線程
  • 消費者和生產者的幾種實現方式,優缺點
  • 進程間通信
  • 同步容器類,並發容器類之間的區別
  • 幾個重要的數據結構,需要了解詳細,最好能看過關鍵代碼, copyOnWrite容器, ConcurrentHashMap
  • 信號量, CountDownLatch, CyclicBarrier等類的使用
  • 還有一些Future框架等等(這塊我也知道的不多)

Java Web 方向的面試點:

  • Servlet init() service() post, get等方法區別
  • 重定向,請求轉發,跨域什麼的
  • Http各個端口號,返回碼
  • Spring框架中的東西 spring MVC Spring web

Java高深一點的東西:

  • 反射機制
  • Java類加載機制,四種類加載器,加載過程,檢查過程
  • 依賴注入
  • Spring框架
  • AOP面向切面編程

數據結構方向的面試點:

  • 數據結構,線性列表,二叉樹,完全二叉平衡樹,B+樹,圖的表示。
  • 樹的先序,中序,後序,層序遍歷。能手寫代碼,遞歸和循環實現。 棧的使用
  • 排序 常用的排序算法, 選擇,冒泡,快排,堆排序,歸並等。能手寫代碼,知道時間和空間復雜度,能做一些代碼上的改進。
  • 動態規劃和分治的區別,能根據題目想到這方面,簡單的例子能寫出來
  • 圖的算法
  • 最好去leetcode上系統的刷一下題,不需要全部刷完,但是基本的類型都刷到,很有幫助,代碼能力也能提高

數據庫方面的面試點:

  • MySQL數據庫的幾種引擎,不同數據庫間的比較
  • 數據庫的封鎖協議,各種讀寫鎖
  • Java裡面的數據庫連接,driver等等
  • SQL語句,insert,select, truncate, drop等
  • 索引,聯合索引,自增主鍵的優劣。
  • NoSQL和MongoDB, Redis的概念,它的恢復機制,兩種模式(內存快照和命令保存)

計算機網絡和操作系統方面的面試點:

  • 擁塞控制,網絡七層模型,各層各種應用,tcp/udp, IP,DNS, FTP. 舉例訪問網站經過的步驟等
  • 操作系統裡面的內存替換算法,LRU等
  • 網絡安全方向的,數據安全,數字簽名等等

不錯的網站介紹:

leetcode 刷算法題的好地方,但是現在題目越來越多了。都400多道了,看個人能力了

Simple Java 一個講解Java面試中常問到的一些點,誤區等等,適合基礎入門用

阿裡中間件官方博客 有蠻多框架上的東西和一些實際工作的經驗總結,可以長長知識

還有好多個人收藏的網站,你們在搜索上面的知識點的時候差不多都能找到

Copyright © Linux教程網 All Rights Reserved