Java面試必備技能
如果要應聘高階開發工程師職務,僅僅懂得Java的基礎知識是遠遠不夠的,還必須懂得常用資料結構、演算法、網路、作業系統等知識。因此本文不會講解具體的技術,筆者綜合自己應聘各大公司的經歷,整理了一份大公司對Java高階開發工程師職位的考核綱要,希望可以幫助到需要的人。
當前,市面上有《Java XX寶典》類似的圖書,而且圖書中的內容都著重在講解Java最為基礎的部分,最嚴重的是,裡面有著大量錯誤的內容,極具誤導性。另外,網上也有各種各樣的,很多也是著重在Java語言基礎上。實際上,如果要應聘高階開發工程師職務,僅僅懂得Java的基礎知識是遠遠不夠的,還必須懂得常用資料結構、演算法、網路、作業系統等知識。因此本文不會講解具體的技術,筆者綜合自己應聘各大公司的經歷,整理了一份大公司對Java高階開發工程師職位的考核綱要,希望可以幫助到需要的人。
1 Java基礎
1.1 Collection和Map
(1)掌握Collection和Map的繼承體系。
(2)掌握ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、、EnumMap、TreeMap、HashTable的特點和實現原理。
(3)掌握CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap的實現原理和適用場景。
1.2 IO
(1)掌握InputStream、OutputStream、Reader、Writer的繼承體系。
(2)掌握位元組流(FileInputStream、DataInputStream、BufferedInputStream、FileOutputSteam、DataOutputStream、BufferedOutputStream)和字元流(BufferedReader、InputStreamReader、FileReader、BufferedWriter、OutputStreamWriter、PrintWriter、FileWriter),並熟練運用。
(3)掌握NIO實現原理及使用方法。
1.3 異常
(1)掌握Throwable繼承體系。
(2)掌握異常工作原理。
(3)瞭解常見受檢異常(比如FileNotFoundException)、非受檢異常(比如NullPointerException)和錯誤(比如IOError)。
1.4 多執行緒
(1)掌握s可以建立的三種(JAVA8增加了一種,共四種)執行緒池的特點及適用範圍。
(2)掌握多執行緒同步機制,並熟練運用。
1.5 Socket
(1)掌握Socket通訊原理。
(2)熟練使用多執行緒結合Socket進行程式設計。
2 Java虛擬機器
2.1 JVM記憶體區域劃分
(1)掌握程式計數器、堆、虛擬機器棧、本地方法棧、方法區(JAVA8已移除)、元空間(JAVA8新增)的作用及基本原理。
(2)掌握堆的劃分:新生代(Eden、Survivor1、Survivor2)和老年代的作用及工作原理。
(3)掌握JVM記憶體引數設定及調優。
2.2 類載入
(1)掌握類的載入階段:載入、連結(驗證、準備、解析)、初始化、使用、解除安裝。
(2)掌握類載入器分類及其應用:啟動類載入器、擴充套件類載入器、應用程式類載入器、自定義載入器。
3 J2EE
(1) 掌握JSP內建物件、動作及相關特點和工作原理。
(2) 掌握Servlet的特點和工作原理。
(3) 掌握Spring框架的IOC和AOP實現原理(反射和動態代理)。
(4) 至少掌握一個MVC框架(Spring MVC,Struts等)的工作原理,並熟練運用。
(5) 至少掌握一個ORM框架(Hibernate,MyBatis等)的工作原理,並熟練運用。
4 資料結構與演算法
(1)掌握線性表和樹的特點並熟練運用。
(2)掌握常用排序和查詢演算法:插入排序(直接插入排序、希爾排序)、選擇排序(直接選擇排序、堆排序)、交換排序(氣泡排序、快速排序)、歸併排序,順序查詢、二分查詢、雜湊查詢。
(3) 熟練運用常見排序和查詢演算法思想解決程式設計問題。
(4)瞭解幾大基本演算法:貪心演算法、分治策略、動態規劃。
5 計算機網路
(1)掌握網路的分層結構,及每層的功能特點。
(2)掌握TCP/IP的通訊原理(三次握手、四次揮手)
6 資料庫
(1)掌握複雜的SQL語句編寫。
(2)掌握資料庫的優化(SQL層面和表設計層面)。
(3)至少掌握一款資料庫產品。
(4)熟悉高併發、大資料情況下的資料庫開發。
7 Web技術
(1)掌握AJAX的工作原理。
(2)至少熟悉一款JS框架(比如JQuery)。
8 設計模式
(1)熟悉常見的設計模式。
(2)會將設計模式理論應用到實際開發中。
9 Linux
(1)熟練運用Linux常見命令。
(2)熟悉Linux作業系統基本概念及特點。
(3)熟悉Shell指令碼。
10 作業系統
(1)掌握作業系統的程序管理。
(2)瞭解作業系統的I/O。
11 正則表示式
(1)掌握常見正則表示式符號。
(2)熟練運用正則表示式解決實際問題(比如匹配電話號碼、郵箱、域名等)。
原文轉載自:原文
相關推薦
Java面試必備技能
如果要應聘高階開發工程師職務,僅僅懂得Java的基礎知識是遠遠不夠的,還必須懂得常用資料結構、演算法、網路、作業系統等知識。因此本文不會講解具體的技術,筆者綜合自己應聘各大公司的經歷,整理了一份大公司對Java高階開發工程師職位的考核綱要,希望可以幫助到需要的人。 當前
JAVA面試必備的知識寶典(一)
java相關概念面向對象的三個特征封裝,繼承,多態.這個應該是人人皆知.有時候也會加上抽象.多態的好處允許不同類對象對同一消息做出響應,即同一消息可以根據發送對象的不同而采用多種不同的行為方式(發送消息就是函數調用).主要有以下優點:可替換性:多態對已存在代碼具有可替換性.可擴充性:增加新的子類不影響已經存在
JAVA面試必備的知識寶典(三)
java數據類型相關java中int char,long各占多少字節?|類型|位數|字節數| |-|-|-| |short|2|16| |int|4|32| |long|8|64| |float|4|32 |double|8|64| |char|2|16|64位的JVM當中,int的長度是多少?Java 中,
Java面試必備Springioc上
技術 logs rda 文件 面試 ava ret com mage 配置文件中 Proprety name值必須和 類中的成員變量private IUsedao userDao一一對應 工程項目的代碼為: Java面試必備Springioc上
高效能人士面試必備技能
經過了大概一週的面試,面了3家,2家offer收入囊中,準備+運氣的結合體吧。 藉助《高效能人士七個習慣》,總結了以下幾點,希望分享給大家,歡迎大家多提意見! 一、積極主動 提前到面試地點,積極的去思考,積極的表達自己(筆試、面試),去了解公司資
(轉)面試必備技能:JDK動態代理給Spring事務埋下的坑!
一、場景分析 最近做專案遇到了一個很奇怪的問題,大致的業務場景是這樣的:我們首先設定兩個事務,事務parent和事務child,在Controller裡邊同時呼叫這兩個方法,示例程式碼如下: 1、場景A: @RestController @RequestMapping(value = "/
Java面試必備
1 、hashmap的底層,和hashtable,hashset有什麼區別?currenthashtable的底層? hashmap的實現方式陣列加連結串列,在jdk1.8以後使用陣列加二叉樹的結構。 hashcode採用31的原因是,因為可以利用移位操作代替乘
java工程師必備技能庫
1、樂觀鎖,悲觀鎖,可重入鎖; 2、技術棧:springcloud/springboot/dubbo,執行緒池/NIO;熟悉java 多執行緒、NIO、Socket等程式設計相關技術; 3、熟悉java服務治理Dubbo(dubbox) 、Zookeeper、Active
面試必備技能:JDK動態代理給Spring事務埋下的
一、場景分析 最近做專案遇到了一個很奇怪的問題,大致的業務場景是這樣的:我們首先設定兩個事務,事務parent和事務child,在Controller裡邊同時呼叫這兩個方法,示例程式碼如下: 1、場景A: @RestController @RequestM
Android面試必備技能
這裡只簡單列舉一些東西,可能不是特別全,但是卻特別適用,也不一定按照下面的流程,有可能是穿插的,也有可能都有,根據公司的規模以及面試官的心情而定(哈哈哈 ,你們就自求多福吧)。建議大家還是要將下面的東西全部掌握,沒事寫寫程式碼,練練手,在專案中能用到的地方一定要用,有可能
Java工程師必備技能有哪些?
很多人都說程式語言,只要掌握其中20%的經典技術,就可以在職場上混的遊刃有餘,作為一名Java程式設計師,要想在Java領域做到遊刃有餘,這些技術是必須要掌握的。1. java 基礎這就不用多說了吧,不用說精通,至少是常用的要熟練,不會說連jdk裡面提供的類都沒認全的。必須熟
Java1.7的HashMap原始碼分析-面試必備技能
- HashMap是現在用的最多的map,HashMap的原始碼可以說是面試必備技能,今天我們試著分析一下jdk1.7下的原始碼。 - 先說結論:陣列加連結串列 ![ hashmap ](https://gitee.com/zhangbin1989/picture/raw/master/zb0009_
2019最新 Java BAT大型公司面試專屬必備技能教程
課程目錄:1.面試必考之HashMap原始碼分析與實現2.探索JVM底層奧祕ClassLoader原始碼分析與案例講解3.面試必備技能之Dubbo企業實戰4.分散式框架Zookeeper之服務註冊與訂閱5.網際網路系統垂直架構之Session解決方案6.分庫分表之後分散式下如
Java BAT大型公司面試專屬必備技能視訊教程
1.面試必考之HashMap原始碼分析與實現 2.探索JVM底層奧祕ClassLoader原始碼分析與案例講解 3.面試必備技能之Dubbo企業實戰 4.分散式框架Zookeeper之服務註冊與訂閱 5.網際網路系統垂直架構之Session解決方案 6.分庫分表之後分散式下如何保證ID全域性唯一性 7.網際
資料匯總--java開發程序員必備技能
ref baidu 驅動 持久化 原型工具 axure 密碼 關聯 測試 1. 熟練使用Java語言進行面向對象程序設計(面向對象:繼承、多態、抽象); 有良好的編程習慣(阿裏開發手冊 鏈接:http://pan.baidu.com/s/1dFEA6cT 密
java面試基礎必備
java集合 訪問 如何實現 inux java內存 遞歸 actor osi 字段 一、Java基礎 1. String類為什麽是final的。 2. HashMap的源碼,實現原理,底層結構。 3. 說說你知道的幾個Java集合類:list、set、queue、map實
深入理解 Java 多線程核心知識:跳槽面試必備
java多線程多線程相對於其他 Java 知識點來講,有一定的學習門檻,並且了解起來比較費勁。在平時工作中如若使用不當會出現數據錯亂、執行效率低(還不如單線程去運行)或者死鎖程序掛掉等等問題,所以掌握了解多線程至關重要。本文從基礎概念開始到最後的並發模型由淺入深,講解下線程方面的知識。概念梳理本節我將帶大家了
Java程序員漲薪必備技能(1-5年必看!!!)
jvm調優 一起 虛擬化 工作 nag 中國互聯網 18C 後端 如何 工作1-5年,當我們向老板提出加薪的時候,或者跳槽去“撿”offer的時候,我們底氣夠嗎?敢不敢不給漲薪就“揮一揮衣袖,不帶走一個bug”?是不是提出要求後你的主管、經理立刻同意,為了把你留住。然而,現
01.zookeeper介紹 (中級Java程序員必備技能一)
分布式 是什麽 必備 數據 執行 roo 分布 分布式協調 很多 1.zookeeper是什麽? zookeeper是一個開源的分布式協調服務,是google的chubby一個開源的實現。是Hadoop和Hbase的重要組件。 2.zookeeper能做什麽? 分布式數據一
JAVA面試通關知識點必備(持續更新中)
1.JAVA基本資料型別包括哪些? 基本資料型別包括byte,short,int,long,float,double,boolean,char. 2.String能被繼承嗎?為什麼? java.lang.String類是final型別的,因為不可以繼承這個類,不能修改