寫在前面:這篇文章裏面總結了不少
Java
相關的知識,基本上應該算是每一個Java
程序員必須會的一些知識,因此,也就是不少面試官喜歡拿來考的一些東西。總結他們第一個目的是本身可以常常拿出來看一看,第二個也是能夠給別人一些借鑑。爲了方便,我把他們分了類,有一些是必看的,我用!標註,有一些進階型的我用%標註,有一些須要瞭解的,我用?標註。java
void
byte
int
long
char
short
float
double
String
StringBuffer
StringBuilder
Array
Collection
Collections
List
ArrayList
LinkedList
Vector
Set
HashMap
TreeMap
LinkedHashMap
ConcerrentHashMap
Set
TreeMap
HashMap
synchronized
volatile
transient
implements
extends
public
private
protected
this
super
static
final
const
null
run
start
thread
enmu
quicksort
mergesort
heapsort
bubblesort
selectsort
insertsort
stack
queue
list
heap
tree
avlTree
Btree
B+Tree
RTree
throw
throws
try
catch
finally
break
continue
instanceof
%一、隊列、棧、鏈表、樹、堆、圖
!二、棧和隊列的相同和不一樣之處
?三、棧一般採用的兩種存儲結構
!四、ArrayList
,Vector
,LinkedList
的存儲性能和特性
%五、各類樹(平衡樹
,排序樹
,B樹
,B+樹
,R樹
,多路樹
,紅黑樹
)c++
?一、實現鏈表排序的一種算法。說明爲何你會選擇用這樣的方法?
!二、排序
都有哪幾種方法?請列舉。
!三、各類排序算法的時間複雜度
和穩定性
%四、字符串(單鏈表)逆序
!五、深度優先搜索
和廣度優先搜索
%六、使用棧實現鏈表/使用鏈表實現棧
%七、全排列、貪心算法、KMP算法、hash算法、海量數據處理git
?一、虛擬內存管理
?二、換頁算法
?三、進程間通訊程序員
%一、Linux 一些基本命令,如看load,查看文件內容
%二、列出幾個比較常見的命令,並解釋下命令的用法web
!一、tcp,udp區別
!二、HTTP請求和響應的全過程
!三、osi
七層模型以及tcp/ip
四層模型(每一層主要功能,傳輸的內容,主要協議,主要應用)
!四、三次握手,四次關閉,丟包,粘包,容量控制,擁塞控制
?五、子網劃分面試
!一、
範式
?二、rownum
和rowid
的區別與使用正則表達式
%一、
Transaction
有哪幾種隔離級別?(Isolation Level)
?二、Global transaction
的原理是什麼?
!三、事務
是什麼?算法
%一、
樂觀鎖
,悲觀鎖
spring
!一、
分頁
如何實現(Oracle
,MySql
)
!二、Mysql引擎sql
%一、數據庫操做的性能瓶頸一般在哪裏, 1000萬級別訪問,在數據庫和java程序上考慮哪些來進行性能優化
%二、性能方面。多數結合多線程、同步來問,以提取一張大表數據來做爲例子 解決性能的方法
!三、表關聯時,內鏈接
,左鏈接
,右鏈接
怎麼理解?
!四、Statement
和PreparedStatement
之間的區別
!五、用JDBC怎樣從數據庫中查詢一條記錄
%六、索引
以及索引的實現
(B+樹介紹、和B樹、R樹區別
%一、爲何不要在構造器中調用虛函數
%二、爲何不要在析構函數中拋出異常
!一、面向對象的三大基本特徵,五大基本原則
%二、C++繼承的內存佈局
%三、C++多態的實現機制
!四、new、delete、malloc、free
!一、爲何使用補碼
%二、C語言中的內存泄漏
!三、進制轉換
!四、本身編寫strlen/strcpy/strcmp
!一、
interface
和abstrat class
的區別
!二、是否能夠繼承多個接口,是否能夠繼承多個抽象類
%三、Static Nested Class
和Inner Class
的不一樣
!四、Overload
和Override
的區別。Overloaded
的方法是否能夠改變返回值的類型?
!五、abstract
的method是否可同時是static
,是否可同時是native
,是否可同時是synchronized
!六、是否能夠繼承String
類
!七、構造器Constructor
是否可被override
?
!八、做用域public
,protected
,private
,以及不寫
時的區別?
!一、列舉幾個
Java Collection
類庫中的經常使用類
!二、List
、Set
、Map
是否都繼承自Collection
接口?
!三、HashMap
和Hashtable
的區別
%四、HashMap
中是否任何對象均可以作爲key,用戶自定義對象作爲key有沒有什麼要求?
!五、Collection
和Collections
的區別
%六、其餘的集合類:concurrenthashmap
,treemap
,treeset
,linkedhashmap
等。
!一、
Error
、Exception
和RuntimeException
的區別,做用又是什麼?列舉3個以上的RuntimeException
!二、Java中的異常處理機制的簡單原理和應用
!三、內存溢出和內存泄露
!一、
String
和StringBuffer
、StringBuilder
的區別
!二、String s = 「123」;這個語句有幾個對象產生
!三、reader
和inputstream
區別
!四、==
和equals
的區別
%五、hashCode
的做用
%六、hashCode
和equals
方法的關係
?七、Object類中有哪些方法,列舉3個以上(能夠引導)
!八、char
型變量中能不能存貯一箇中文漢字?爲何?
%九、瞭解過哪些JDK8的新特性,舉例描述下相應的特性?
!十、Input/OutputStream
和Reader/Writer
有何區別?何爲字符,何爲字節?
!十一、如何在字符流和字節流之間轉換?
!十二、啓動一個線程是用run()
仍是start()
?
%1三、海量數據查詢、存儲
!1四、switch
可使用那些數據類型
!1五、多線程與死鎖
%1六、Java的四種引用
!1七、序列化與反序列化
!1八、自動裝箱與拆箱
!1九、正則表達式
IDE、maven、svn/git、Linux、Firebug
!一、多線程的實現方式,有什麼區別
%二、同步
和併發
是如何解決的
三、什麼叫守護線程
,用什麼方法實現守護線程(Thread.setDeamon()
的含義)
%四、如何中止一個線程?
!五、解釋是一下什麼是線程安全
?舉例說明一個線程不安全的例子。解釋Synchronized
關鍵字的做用。
!六、當一個線程進入一個對象的一個synchronized
方法後,其它線程是否可進入此對象的其它方法?
!一、
gc
的概念,若是A和B對象循環引用,是否能夠被GC?
%二、Java
中的內存溢出是如何形成的
%三、jvm gc如何判斷對象是否須要回收,有哪幾種方式?
?四、Java中的內存溢出
和C++中的內存溢出
,是一個概念嗎?
!五、引用計數,對象引用遍歷;jvm有哪幾種垃圾回收機制
?講講分代回收機制
!一、
ClassLoader
的功能和工做模式
?一、
IO
和NIO
本質不一樣在實際項目使用場景及如何使用
?一、
hashcode
有哪些算法
%二、反射
,是否能夠調用私有方法,在框架中的運用
?三、知道範型
的實現機制嗎?
?四、Socket編程
一般出現的異常有哪些,什麼狀況下會出現
?五、瞭解JVM啓動參數嗎?-verbose -Xms -Xmx
的意思是什麼?
%六、StringBuffer
的實現方式,容量如何擴充
%七、代理機制
的實現
!一、
Servelt
的概念。常問http request
能得到的參數
%二、servlet中,如何定製session
的過時時間?
!三、Servlet中的session
工做原理 (禁用cookie如何使用session
)
!四、servlet中,filter
的應用場景有哪些?
!五、描述JSP和Servlet的區別、共同點(JSP的工做原理)。
?六、JSP的動態include
和靜態include
!七、Servlet的生命週期
!一、
Struts
中請求的實現過程
!二、MVC
概念
%三、談一下本身最熟悉的web框架?而後就瞭解的web框架再深刻下去
%四、Spring mvc
與Struts mvc
的區別 (什麼是Mvc框架)
?五、Service
嵌套事務處理,如何回滾
!一、
session
和cookie
的區別
!二、HTTP請求中Session
實現原理?
%三、若是客戶端禁止Cookie能實現Session嗎?
!四、httpget
和post
區別
!五、在web開發中,用redirect
與forward
作跳轉有什麼區別?web應用服務器對用戶請求一般返回一些狀態碼,請描述下分別以4和5開頭的狀態碼
?一、
Hibernate
/Ibatis
二者的區別
?二、OR Mapping
的概念
%三、hibernate
一級和二級緩存是否知道
?四、使用hibernate
實現集羣部署,須要注意些什麼
!五、Spring如何實現AOP
和IOC
的?
!六、Spring的核心理念是什麼?是否瞭解IOC和AOP
!七、Spring的事務管理
,Spring bean注入
的幾種方式
!八、SpringAOP
解決了什麼問題
?一、
Tomcat
和weblogic
的最根本的區別
?二、Jboss
端口在哪一個配置文件中修改
%一、
SQL注入
SQL安全
?一、
AJAX
感覺,有什麼缺點?
%二、你使用的是Ajax
的那種框架?
?三、Ajax
如何解決跨域問題
?一、簡述
WebService
是怎麼實現的
?一、
JMS
的模式兩種模式
?一、
Js:confirm()
方法
?二、Iframe
的優缺點
%三、咱們在web應用開發過程當中常常遇到輸出某種編碼的字符,如iso8859-1
等,如何輸出一個某種編碼的字符串?(主要是考量有沒有碰到過編碼問題,問題是如何解決的)
?四、怎麼獲取到客戶端的真實IP?
?五、名詞解釋:jndi,rmi,jms,事務
,若是有了解的話能夠深刻
?六、WEB層如何實現Cluster
?一、在項目中是否採用分層的結構,是怎樣劃分的,各層之間採用了哪些相關技術? 對哪些設計模式比較熟悉?
%二、什麼是低耦合
和高聚合
?封裝原則
又是什麼意思?
%三、類A依賴類B,會產生什麼問題?怎樣解除這種耦合
?
%一、談一下本身瞭解或者熟悉的
設計模式
!二、Singleton
的幾種實現方式
?三、工廠模式
和抽象工廠模式
之間的區別
!四、簡述M-V-C
模式解決了什麼問題?
%一、說說你所知道的
UML
圖,在項目中是如何運用的
參考問題
程序員面試筆試寶典Java編程思想Effective Java深刻理解Java虛擬機