Java面試大綱

有一些是必看的,我用標註,有一些進階型的我用%標註,有一些須要瞭解的,我用標註。java

  1. 計算機基礎知識
  2. 數據庫相關
  3. Java基礎
  4. Java高級
  5. J2EE相關
  6. 面向對象
  7. 思惟清晰水平考察
  8. 推薦閱讀

計算機基礎知識

數據結構

%一、隊列、棧、鏈表、樹、堆、圖
二、棧和隊列的相同和不一樣之處
三、棧一般採用的兩種存儲結構
四、ArrayList,VectorLinkedList的存儲性能和特性
%五、各類樹(平衡樹,排序樹,B樹,B+樹,R樹,多路樹,紅黑樹)git

算法

一、實現鏈表排序的一種算法。說明爲何你會選擇用這樣的方法?
二、排序都有哪幾種方法?請列舉。
三、各類排序算法的時間複雜度穩定性
%四、字符串(單鏈表)逆序
五、深度優先搜索廣度優先搜索
%六、使用棧實現鏈表/使用鏈表實現棧
%七、全排列、貪心算法、KMP算法、hash算法、海量數據處理web

操做系統

一、虛擬內存管理
二、換頁算法
三、進程間通訊正則表達式

LINUX相關命令及操做

%一、Linux 一些基本命令,如看load,查看文件內容
%二、列出幾個比較常見的命令,並解釋下命令的用法算法

計算機網絡

一、tcp,udp區別
二、HTTP請求和響應的全過程
三、osi七層模型以及tcp/ip四層模型(每一層主要功能,傳輸的內容,主要協議,主要應用)
四、三次握手,四次關閉,丟包,粘包,容量控制,擁塞控制
五、子網劃分spring

數據庫相關

關係模型理論:

一、範式
二、rownumrowid的區別與使用sql

事務相關

%一、Transaction有哪幾種隔離級別?(Isolation Level)
二、Global transaction的原理是什麼?
三、事務是什麼?數據庫

併發控制

%一、樂觀鎖悲觀鎖編程

ORACLE或MYSQL題目

一、分頁如何實現(OracleMySql
二、Mysql引擎設計模式

其它

%一、數據庫操做的性能瓶頸一般在哪裏, 1000萬級別訪問,在數據庫和java程序上考慮哪些來進行性能優化
%二、性能方面。多數結合多線程、同步來問,以提取一張大表數據來做爲例子 解決性能的方法
三、表關聯時,內鏈接左鏈接右鏈接怎麼理解?
四、StatementPreparedStatement之間的區別
五、用JDBC怎樣從數據庫中查詢一條記錄
%六、索引以及索引的實現(B+樹介紹、和B樹、R樹區別

1、Java基礎

繼承、抽象類與接口區別、訪問控制(private, public, protected,默認)、多態相關

一、interface和 abstrat class的區別
二、是否能夠繼承多個接口,是否能夠繼承多個抽象類
%三、Static Nested Class 和 Inner Class的不一樣
四、OverloadOverride的區別。Overloaded的方法是否能夠改變返回值的類型?
五、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized
六、是否能夠繼承String
七、構造器Constructor是否可被override?
八、做用域public,protected,private,以及不寫時的區別?

collections相關的數據結構及API

一、列舉幾個Java Collection類庫中的經常使用類
二、ListSetMap是否都繼承自Collection接口?
三、HashMapHashtable的區別
%四、HashMap中是否任何對象均可以作爲key,用戶自定義對象作爲key有沒有什麼要求?
五、Collection 和 Collections的區別
%六、其餘的集合類:concurrenthashmap,treemap,treeset,linkedhashmap等。

異常體系

一、ErrorExceptionRuntimeException的區別,做用又是什麼?列舉3個以上的RuntimeException
二、Java中的異常處理機制的簡單原理和應用
三、內存溢出和內存泄露

其它

一、StringStringBufferStringBuilder的區別
二、String s = 「123」;這個語句有幾個對象產生
三、readerinputstream區別
四、==equals的區別
%五、hashCode的做用
%六、hashCodeequals方法的關係
七、Object類中有哪些方法,列舉3個以上(能夠引導)
八、char型變量中能不能存貯一箇中文漢字?爲何?
%九、瞭解過哪些JDK8的新特性,舉例描述下相應的特性?
十、Input/OutputStreamReader/Writer有何區別?何爲字符,何爲字節?
十一、如何在字符流和字節流之間轉換?
十二、啓動一個線程是用run()仍是start()?
%1三、海量數據查詢、存儲
1四、switch可使用那些數據類型
1五、多線程與死鎖
%1六、Java的四種引用
1七、序列化與反序列化
1八、自動裝箱與拆箱
1九、正則表達式

JAVA開發工具、環境的使用

IDE、maven、svn/git、Linux、Firebug

2、 Java高級

多線程

一、多線程的實現方式,有什麼區別
%二、同步併發是如何解決的
三、什麼叫守護線程,用什麼方法實現守護線程(Thread.setDeamon()的含義)
%四、如何中止一個線程?
五、解釋是一下什麼是線程安全?舉例說明一個線程不安全的例子。解釋Synchronized關鍵字的做用。
六、當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?

內存結構,GC

一、gc的概念,若是A和B對象循環引用,是否能夠被GC?
%二、Java中的內存溢出是如何形成的
%三、jvm gc如何判斷對象是否須要回收,有哪幾種方式?
四、Java中的內存溢出和C++中的內存溢出,是一個概念嗎?
五、引用計數,對象引用遍歷;jvm有哪幾種垃圾回收機制?講講分代回收機制

CLASSLOADER

一、ClassLoader的功能和工做模式

NIO

一、IONIO本質不一樣在實際項目使用場景及如何使用

其它

一、hashcode 有哪些算法
%二、反射,是否能夠調用私有方法,在框架中的運用
三、知道範型的實現機制嗎?
四、Socket編程一般出現的異常有哪些,什麼狀況下會出現
五、瞭解JVM啓動參數嗎?-verbose -Xms -Xmx的意思是什麼?
%六、StringBuffer的實現方式,容量如何擴充
%七、代理機制的實現

3、J2EE相關

Servlet的掌握,包括新的異步Servlet

一、Servelt的概念。常問http request能得到的參數
%二、servlet中,如何定製session的過時時間?
三、Servlet中的session工做原理 (禁用cookie如何使用session
四、servlet中,filter的應用場景有哪些?
五、描述JSP和Servlet的區別、共同點(JSP的工做原理)。
六、JSP的動態include和靜態include
七、Servlet的生命週期

WEB框架的掌握(挑其掌握的一種)

一、Struts中請求的實現過程
二、MVC概念
%三、談一下本身最熟悉的web框架?而後就瞭解的web框架再深刻下去
%四、Spring mvcStruts mvc的區別 (什麼是Mvc框架)
五、Service嵌套事務處理,如何回滾

http相關(內部重定向,外部重定向),http返回碼

一、sessioncookie的區別
二、HTTP請求中Session實現原理?
%三、若是客戶端禁止Cookie能實現Session嗎?
四、http getpost區別
五、在web開發中,用redirectforward作跳轉有什麼區別?web應用服務器對用戶請求一般返回一些狀態碼,請描述下分別以4和5開頭的狀態碼

spring,ibatis,hibernate相關

一、Hibernate/Ibatis二者的區別
二、OR Mapping的概念
%三、hibernate一級和二級緩存是否知道
四、使用hibernate實現集羣部署,須要注意些什麼
五、Spring如何實現AOPIOC的?
六、Spring的核心理念是什麼?是否瞭解IOC和AOP
七、Spring的事務管理 ,Spring bean注入的幾種方式
八、Spring AOP解決了什麼問題

jboss,tomcat等容器相關

一、Tomcatweblogic的最根本的區別
二、Jboss端口在哪一個配置文件中修改

web安全,SQL注入,XSS, CSRF等

%一、SQL注入 SQL安全

AJAX相關

一、AJAX感覺,有什麼缺點?
%二、你使用的是Ajax的那種框架?
三、Ajax如何解決跨域問題

Web services

一、簡述WebService是怎麼實現的

JMS

一、JMS的模式兩種模式

其它

一、Js:confirm()方法
二、Iframe的優缺點
%三、咱們在web應用開發過程當中常常遇到輸出某種編碼的字符,如iso8859-1等,如何輸出一個某種編碼的字符串?(主要是考量有沒有碰到過編碼問題,問題是如何解決的)
四、怎麼獲取到客戶端的真實IP?
五、名詞解釋:jndi,rmi,jms,事務,若是有了解的話能夠深刻
六、WEB層如何實現Cluster

4、面向對象

高內聚,低耦合方面的理解

一、在項目中是否採用分層的結構,是怎樣劃分的,各層之間採用了哪些相關技術? 對哪些設計模式比較熟悉?
%二、什麼是低耦合高聚合封裝原則又是什麼意思?
%三、類A依賴類B,會產生什麼問題?怎樣解除這種耦合

設計模式方面

%一、談一下本身瞭解或者熟悉的設計模式
二、Singleton的幾種實現方式
三、工廠模式抽象工廠模式之間的區別
四、簡述M-V-C模式解決了什麼問題?

其它

%一、說說你所知道的UML圖,在項目中是如何運用的

思惟清晰水平考察

1、從基礎知識裏體現其思惟清晰水平

參考問題

你知道設計模式嗎?你用過哪些設計模式?在什麼場合下用的? 你怎樣保證你的代碼能夠處理各類錯誤事件? 判斷依據是必定要有本身的思考和分析以及總結

2、多角度思考問題、系統而全面地分析各類事件,必定要有本身的判斷 好比項目中用到哪些技術,並分析各類技術的優缺點,必定要有本身的思考和判斷

3、針對項目狀況,順藤摸瓜,考察其項目的一些沉澱及思考。

簡述一個你最有成就的項目(包括團隊,本身在團隊中的角色) 有沒有比較棘手的問題 如何發現的問題(是否找問題的根源) 問題是否已經解決,是如何解決的 若是已解決,是不是你本身經過努力解決的,作了什麼樣的努力 若是未解決,緣由是什麼,你以爲怎麼樣能夠比較好的解決掉這個問題 描述完畢之後針對未描述點詢問,是否考慮的性能問題,是否考慮部署結構,有沒有比較得意的設計之處 項目過程當中的文檔狀況,你以爲那些還有那些文檔沒有創建,是有必要創建的。 做爲負責人如何保證項目的質量,有了那些措施

4、出題,考驗其思惟推導的能力 例如:

估計一下杭州有多少軟件工程師,若是容許,你還須要那些調研工做?並給出你的推導過程。 估算下淘寶的商品數,給出推導過程 若是讓你作一個網站,如何估算網站的最大併發數
相關文章
相關標籤/搜索