Java面試題無答案

寫在前面:這篇文章裏面總結了不少Java相關的知識,基本上應該算是每一個Java程序員必須會的一些知識,因此,也就是不少面試官喜歡拿來考的一些東西。總結他們第一個目的是本身可以常常拿出來看一看,第二個也是能夠給別人一些借鑑。爲了方便,我把他們分了類,有一些是必看的,我用!標註,有一些進階型的我用%標註,有一些須要瞭解的,我用?標註。java

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

必會關鍵字

void byte int long char short float double String StringBufferStringBuilder Array Collection Collections List ArrayList LinkedListVector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMapHashMap synchronized volatile transient implements extends public privateprotected this super static final const null run start thread enmuquicksort mergesort heapsort bubblesort selectsort insertsort stack queuelist heap tree avlTree Btree B+Tree RTree throw throws try catch finallybreak continue instanceof

計算機基礎知識

數據結構

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

算法

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

操做系統

?一、虛擬內存管理
?二、換頁算法
?三、進程間通訊程序員

LINUX相關命令及操做

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

計算機網絡

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


數據庫相關

關係模型理論:

!一、範式
?二、rownumrowid的區別與使用正則表達式

事務相關

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

併發控制

%一、樂觀鎖悲觀鎖spring

ORACLE或MYSQL題目

!一、分頁如何實現(OracleMySql
!二、Mysql引擎sql

其它

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


C語言基礎

構造函數、析構函數

%一、爲何不要在構造器中調用虛函數
%二、爲何不要在析構函數中拋出異常

c++相關

!一、面向對象的三大基本特徵,五大基本原則
%二、C++繼承的內存佈局
%三、C++多態的實現機制
!四、new、delete、malloc、free

其餘

!一、爲何使用補碼
%二、C語言中的內存泄漏
!三、進制轉換
!四、本身編寫strlen/strcpy/strcmp


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、出題,考驗其思惟推導的能力 例如:

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


推薦閱讀

程序員面試筆試寶典Java編程思想Effective Java深刻理解Java虛擬機

相關文章
相關標籤/搜索