1. 程式人生 > >java程式設計師如何通過阿里、百度的招聘面試

java程式設計師如何通過阿里、百度的招聘面試

1.Java語言基礎

java語法基礎java類與物件java繼承與多型面向物件高階特性異常處理多執行緒輸入與輸出IO泛型,reflection,annotation;

此類書籍中,最經典無過於這本"Thinking in java",至少多看幾遍,經典就是經典!



2.Java基本類庫

java.lang 包:主要含有與語言相關的類。java.lang 包由解釋程式自動載入,不需要顯示說明。java.io 包:主要含有與輸入/輸出相關的類,這些類提供了對不同的輸入和輸出裝置讀寫資料的支援。java.util 包:包括許多具有特定功能的類,有日期、向量、雜湊表、堆疊等,其中 Date類支援與時間有關的操作。java.net 包:含有與網路操作相關的類,如 TCP Scokets、URL 等工具。java.beans 包:定義了應用程式程式設計介面(API),Java Beans 是 Java 應用程式環境的中性平臺元件結構等等

3.Java高階特性和類庫

java類載入器class loaderjava 程式執行的基礎知識,java編譯後的bytecode的整個執行機制,這一點對應.net的IL(intermediate language)。理解Java nio,關於這一點網上有非常多的教程,這一條需要重點掌握,對於高併發的掌握很重要。java juc(java.util.concurrent)等等

4.Java多執行緒程式設計

Java執行緒:概念與原理Java執行緒:建立與啟動Java執行緒:執行緒棧模型與執行緒的變數Java執行緒:執行緒狀態的轉換Java執行緒:執行緒的同步與鎖Java執行緒:執行緒的互動等等

5.Java網路與伺服器程式設計

網路結構


6.TCP/IP協議


7.JVM原理和調優

JVM最重要的三個部分必須要非常清楚,記憶體劃分、class載入機制以及GC策略。搞清楚這三部分不僅僅是為了面試,也是為了讓你對於Java有更深刻的理解,這對於你的Java生涯非常有幫助。

記憶體劃分簡單說分為三個部分,Young Generation(年輕代)、Old Generation(年老代)以及Perm Generation(永久代)。其中的Young Generation(年輕代),又分為Eden、From和To,其中From和To又統稱為Survivor Spaces(倖存區)。關於classloader機制的學習,可以結合tomcat去學習,瞭解清楚tomcat的classloader機制,看tomcat是如何保證各個APP之間的類隔離的。如果可能的話,看一下tomcat中classloader的原始碼,當中也包含了與tomcat類載入機制相似的部分。至於GC,需要清楚GC Roots都有哪些,以及如何判斷一個物件可以被回收。此外,GC的演算法和策略也要有大概的瞭解

8.程式設計和要求

1.資料結構和演算法



常用資料結構ArrayList、HashMap等等演算法原理、熟知內部原始碼實現,比如,怎麼擴容等。

2.面向物件程式設計、設計模式

掌握建模語言和建模工具:UML、MVC程式設計思想

3.高質量編碼能力

重用性,低耦合,可擴充套件性,高效能,可維護性,安全性高

4.整合開發,版本控制,構建等工具

eclipse, svn, maven ,git等

Web開發要求

1.常見協議

DNS,HTTP, Cookie, Mail, Proxy等協議

2.模板引擎

Java Servlet API, Velocity/JSP等模板引擎

3.主流開發框架

web端:spring mvc jsf,Mabatis等以及框架原理,需要掌握熟練。

4.Web伺服器部署和配置

Apache,Tomcat,JBoss,Jetty等

5.客戶端程式碼編寫

HTML/CSS/JSWeb開發除錯工具:Firebug等等