Java 程序員
高級特性 反射、泛型、注釋符、自動裝箱和拆箱、枚舉類、可變 參數、可變返回類型、增強循環、靜態導入 核心編程 IO、多線程、實體類、 集合類、正則表達式、 XML 和屬性文件 圖形編程 AWT(Java2D/JavaSound/JMF) 、Swing、SWT、JFace 網路編程 Applet、Socket/TCP/UDP、NIO、RMI、CORBA
Java 語法基礎 類、抽象類、接口、最終類、靜態類、匿名類、內部類、異常類、編碼規范
Java 開發環境 JDK、JVM、Eclipse、Linux
Java 核心編程技術 Java,設計而又非常精巧的語言。學習 Java,須從 Java 開發環境開始,到 Java 語法,再到 Java 的核心 API。
1.Java 開發入門:Java 開發環境的安裝與使用,包括 JDK 命令、EclipseIDE、Linux 下 Java 程序的開發和部署等。
2.Java 語法基礎:基於 JDK 和 Eclipse 環境,進行 Java 核心功能開發,掌握 Java 面 向對象的語法構成,包括類、抽象類、接口、最終類、靜態類、匿名類、內部類、異常的編 寫。
3.Java 核心 API:基於 JDK 提供的類庫,掌握三大核心功能:
A。Java 核心編程:包括 Java 編程的兩大核心功能——Java 輸入/輸出流和多線程, 以及常用的輔助類庫——實體類、集合類、正則表達式、XML 和屬性文件。
B。Java 圖形編程:包括 Sun 的 GUI 庫 AWT(Java2D、JavaSound、JMF)和 Swing, IBM 和 GUI 庫 SWT 和 Jface;
C. Java 網路編程:Applet 組件編程,Socket 編程,NIO 非阻塞 Socket 編程、RMI 和 CORBA 分布式開發
4.Java 高級特性:掌握 JDK1.4、JDK5.0、JDK6.0 中的 Java 高級特性,包括反射、泛 型、注釋,以及 java 高級特性——自動裝箱和拆箱、枚舉類、可變參數、可變返回類型、 增強循環、靜態導入等。
JavaEE 初級軟件工程師
JSF 框架開發技術 配置文件 (頁面導航、 后台 Bean) JSF 組件庫 、 (JSF EL 語言、 HTML 標簽、 事件處理、、 ) JSF 核心庫(格式轉換、輸入驗證、國際化) Javaweb 核心開發技術 開發環境(Eclipse、Linux) 三大組件(JSP、JavaBean、Servlet) 擴展技術(EL、JSTL、Taglib) 網頁開發技術 HTML、XML、CSS、JavaScript、AJAX 數據庫設計技術 SQL、MySql、Oracle、SQLServer、JDBC
Web 服務器(Tomcat/Jetty/Resin/JBossWeb)
JavaWeb 核心技術: JavaWeb 項目開發的全過程可以分解為: 網頁開發+數據庫設計——>JavaWeb 項目開發,其中,javaWeb 由 6 項基本技術組 成: JSP+JavaBean+Servlet+EL+JSTL+Taglib, JSF 正是將這 6 種技術進行有機結合的技術框架:
JavaEE 中級軟件工程師
四種經典架構 SSH1、SSI1、SSH2、SSI2 Struts1 表現層框架 入門配置、核心組件、標簽庫、國際化、數據檢驗、數據庫開發、Sitemesh 集成、集 成 Hibernate/iBATIS Struts2 表現層框架 入門配置、核心組件、標簽庫、國際化、數據校驗、Sitemesh 集成轉換器、 攔截器、集成 Hibernate/iBATIS Spring 業務層框架 入門配置、IoC 容器、MVC、標簽庫、國際化、數據校驗、數據庫開發 Hibernate 持久層框架 MySQL、Oracle、SQLServer iBATIS 持久層框架 MySQL、Oracle、SQLServer Web 服務器(Tomcat/Jetty/Resin/JBossWeb)
Java 高級軟件工程師
javaWeb 開源技術與框架 工作流、 規則引擎 搜索引擎、 緩存引擎 、 任務調度、 身份認證 報表服務、 系統測試、 集群、 負載平衡、 故障轉移 JavaWeb 分布式開發技術 JTA(Java 事物管理) JAAS(Java 驗證和授權服務) JNDI(Java 命名和目錄服務) JavaMail(Java 郵件服務) JMS(java 信息服務) WebService(web 服務)
JCA(java 連接體系) JMS(java 管理體系)
應用服務器(JBossAS/WebLogic/WebSphere)
JavaEE 系統架構師
面向雲架構(COA) COA、SaaS、網格計算、集群計算、分布式計算、雲計算 面向資源架構(ROA) ROA、RESI 面向 web 服務架構(SOA) WebService、SOA、SCA、ESB、OSGI、EAI Java 設計模式 創建式模式:抽象工廠/建造者/工廠方法/原型/單例 構造型模式:適配器/橋接/組合/裝飾/外觀/享元/代理 行為型模式:責任鏈/命令/解釋器/迭代子/中介者/備忘錄/觀察者/狀態/策略/模 板方法/訪問者 Java 與 UML 建模 對象圖、用例圖、組件圖、部署圖、序列圖、交互圖、活動圖、正向工程與逆向 工程
CTO 首席技術官
發展戰略 技術總監 團隊提升 團隊建設 項目管理 產品管理
如果要應聘高級開發工程師職務,僅僅懂得Java的基礎知識是遠遠不夠的,還必須懂得常用數據結構、算法、網絡、操作系統等知識。因此本文不會講解具體的技術,筆者綜合自己應聘各大公司的經歷,整理了一份大公司對Java高級開發工程師職位的考核綱要,希望可以幫助到需要的人。
當前,市面上有《Java XX寶典》類似的圖書,而且圖書中的內容都着重在講解Java最為基礎的部分,最嚴重的是,里面有着大量錯誤的內容,極具誤導性。另外,網上也有各種各樣的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、WeakHashMap、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)掌握Executors可以創建的三種(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)熟練運用正則表達式解決實際問題(比如匹配電話號碼、郵箱、域名等)。