百度“Java面試題”前200頁精選上篇
基本概念
操作系統中heap 和stack 的區別什麼是基於註解的切面實現什麼是對象/關係映射集成模塊什麼是Java 的反射機制什麼是ACID
BS與CS的聯繫與區別
Cookie 和Session的區別
fail-fast 與fail-safe 機制有什麼區別
get 和post請求的區別
Interface 與abstract 類的區別
IOC的優點是什麼
IO 和NIO的區別,NIO優點
Java 8 / Java 7 為我們提供了什麼新功能什麼是競態條件? 舉個例子說明。
JRE、JDK、JVM 及JIT 之間有什麼不同
MVC的各個部分都有那些技術來實現?如何實現?
RPC 通信和RMI 區別什麼是Web Service(Web服務)
JSWDL開發包的介紹。 JAXP、JAXM的解釋。 SOAP、UDDI,WSDL解釋。
WEB容器主要有哪些功能? 並請列出一些常見的WEB容器名字。
一個”.java”源文件中是否可以包含多個類(不是內部類)?有什麼限制簡單說說你了解的類加載器。是否實現過類加載器解釋一下什麼叫AOP(面向切面編程)
請簡述Servlet 的生命週期及其相關的方法請簡述一下Ajax 的原理及實現步驟簡單描述Struts的主要功能什麼是N 層架構什麼是CORBA?用途是什麼什麼是Java虛擬機?為什麼Java被稱作是“平台無關的編程語言”
什麼是正則表達式?用途是什麼?哪個包使用正則表達式來實現模式匹配什麼是懶加載(Lazy Loading)
什麼是尾遞歸,為什麼需要尾遞歸什麼是控制反轉(Inversion of Control)與依賴注入(Dependency Injection)
關鍵字
finalize
1.什麼是finalize()方法
finalize()方法什麼時候被調用析構函數(finalization)的目的是什麼
final 和finalize 的區別
final
2.final關鍵字有哪些用法
final 與static 關鍵字可以用於哪裡?它們的作用是什麼
final, finally, finalize的區別
final、finalize 和finally 的不同之處?
3.能否在運行時向static final 類型的賦值
使用final關鍵字修飾一個變量時,是引用不能變,還是引用的對像不能變一個類被聲明為final類型,表示了什麼意思
throws, throw, try, catch, finally分別代表什麼意義
Java 有幾種修飾符?分別用來修飾什麼
volatile
volatile 修飾符的有過什麼實踐
volatile 變量是什麼? volatile 變量和atomic 變量有什麼不同
volatile 類型變量提供什麼保證?能使得一個非原子操作變成原子操作嗎能創建volatile 數組嗎?
transient變量有什麼特點
super什麼時候使用
public static void 寫成static public void會怎樣說明一下public static void main(String args[])這段聲明里每個關鍵字的作用請說出作用域public, private, protected, 以及不寫時的區別
sizeof 是Java 的關鍵字嗎
static
static class 與non static class的區別
static 關鍵字是什麼意思? Java中是否可以覆蓋(override)一個private或者是static的方法靜態類型有什麼特點
main() 方法為什麼必須是靜態的?能不能聲明main() 方法為非靜態是否可以從一個靜態(static)方法內部發出對非靜態(non-static)方法的調用靜態變量在什麼時候加載?編譯期還是運行期?靜態代碼塊加載的時機呢成員方法是否可以訪問靜態變量?為什麼靜態方法不能訪問成員變量
switch
switch 語句中的表達式可以是什麼類型數據
switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上
while 循環和do 循環有什麼不同
操作符
&操作符和&&操作符有什麼區別?
a = a + b 與a += b 的區別?
邏輯操作符(&,|,^)與條件操作符(&&,||)的區別
3*0.1 == 0.3 將會返回什麼? true 還是false?
float f=3.4; 是否正確?
short s1 = 1; s1 = s1 + 1;有什麼錯?
數據結構
基礎類型(Primitives)
基礎類型(Primitives)與封裝類型(Wrappers)的區別在哪裡簡述九種基本數據類型的大小,以及他們的封裝類
int 和Integer 哪個會佔用更多的內存? int 和Integer 有什麼區別? parseInt()函數在什麼時候使用到
float和double的默認值是多少如何去小數四捨五入保留小數點後兩位
char 型變量中能不能存貯一個中文漢字,為什麼
類型轉換
怎樣將bytes 轉換為long 類型怎麼將byte 轉換為String
如何將數值型字符轉換為數字我們能將int 強制轉換為byte 類型的變量嗎?如果該值大於byte 類型的範圍,將會出現什麼現象能在不進行強制轉換的情況下將一個double 值賦值給long 類型的變量嗎類型向下轉換是什麼
數組
如何權衡是使用無序的數組還是有序的數組怎麼判斷數組是null 還是為空怎麼打印數組? 怎樣打印數組中的重複元素
Array 和ArrayList有什麼區別?什麼時候應該使用Array而不是ArrayList
數組和鍊錶數據結構描述,各自的時間複雜度數組有沒有length()這個方法? String有沒有length()這個方法
隊列
隊列和棧是什麼,列出它們的區別
BlockingQueue是什麼簡述ConcurrentLinkedQueue LinkedBlockingQueue 的用處和不同之處。
ArrayList、Vector、LinkedList的存儲性能和特性
String
StringBuffer
ByteBuffer 與StringBuffer有什麼區別
HashMap
HashMap的工作原理是什麼內部的數據結構是什麼
HashMap 的table的容量如何確定? loadFactor 是什麼? 該容量如何變化?這種變化會帶來什麼問題?
HashMap 實現的數據結構是什麼?如何實現
HashMap 和HashTable、ConcurrentHashMap 的區別
HashMap的遍歷方式及效率
HashMap、LinkedMap、TreeMap的區別如何決定選用HashMap還是TreeMap
如果HashMap的大小超過了負載因子(load factor)定義的容量,怎麼辦
HashMap 是線程安全的嗎?並發下使用的Map 是什麼,它們內部原理分別是什麼,比如存儲方式、 hashcode、擴容、 默認容量等
HashSet
HashSet和TreeSet有什麼區別
HashSet 內部是如何工作的
WeakHashMap 是怎麼工作的?
Set
Set 裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用== 還是equals()? 它們有何區別?
TreeMap:TreeMap 是採用什麼樹實現的? TreeMap、HashMap、LindedHashMap的區別。 TreeMap和TreeSet在排序時如何比較元素? Collections工具類中的sort()方法如何比較元素?
TreeSet:一個已經構建好的TreeSet,怎麼完成倒排序。
EnumSet 是什麼
Hash算法
Hashcode 的作用簡述一致性Hash 算法有沒有可能兩個不相等的對像有相同的hashcode?當兩個對象hashcode 相同怎麼辦?如何獲取值對象為什麼在重寫equals 方法的時候需要重寫hashCode 方法? equals與hashCode 的異同點在哪裡
a.hashCode() 有什麼用?與a.equals(b) 有什麼關係
hashCode() 和equals() 方法的重要性體現在什麼地方
Object:Object有哪些公用方法? Object類hashcode,equals 設計原則? sun為什麼這麼設計? Object類的概述如何在父類中為子類自動完成所有的hashcode 和equals 實現?這麼做有何優劣。
可以在hashcode() 中使用隨機數字嗎?
LinkedHashMap
LinkedHashMap 和PriorityQueue 的區別是什麼
List
List, Set, Map三個接口,存取元素時各有什麼特點
List, Set, Map 是否繼承自Collection 接口遍歷一個List 有哪些不同的方式
LinkedList
LinkedList 是單向鍊錶還是雙向鍊錶
LinkedList 與ArrayList 有什麼區別描述下Java 中集合(Collections),接口(Interfaces),實現(Implementations)的概念。 LinkedList 與ArrayList 的區別是什麼?
插入數據時,ArrayList, LinkedList, Vector誰速度較快?
ArrayList
ArrayList 和HashMap 的默認大小是多數
ArrayList 和LinkedList 的區別,什麼時候用ArrayList?
ArrayList 和Set 的區別?
ArrayList, LinkedList, Vector的區別
ArrayList是如何實現的,ArrayList 和LinkedList 的區別
ArrayList如何實現擴容
Array 和ArrayList 有何區別?什麼時候更適合用Array
說出ArraList,Vector, LinkedList的存儲性能和特性
Map
Map, Set, List, Queue, Stack
Map 接口提供了哪些不同的集合視圖為什麼Map 接口不繼承Collection 接口
Collections
介紹Java中的Collection FrameWork。集合類框架的基本接口有哪些
Collections類是什麼? Collection 和Collections的區別? Collection、Map的實現集合類框架的最佳實踐有哪些為什麼Collection 不從Cloneable 和Serializable 接口繼承說出幾點Java 中使用Collections 的最佳實踐?
Collections 中遺留類(HashTable、Vector) 和現有類的區別
什麼是B+樹,B-樹,列出實際的使用場景。
接口
Comparator 與Comparable 接口是乾什麼的?列出它們的區別
對象
拷貝(clone)
如何實現對象克隆深拷貝和淺拷貝區別深拷貝和淺拷貝如何實現激活機制寫clone()方法時,通常都有一行代碼,是什麼
比較
在比較對象時,”==” 運算符和equals 運算有何區別如果要重寫一個對象的equals方法,還要考慮什麼兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對
構造器
構造器鍊是什麼創建對象時構造器的調用順序
不可變對象
什麼是不可變象(immutable object)
為什麼Java 中的String 是不可變的(Immutable)
如何構建不可變的類結構?關鍵點在哪裡能創建一個包含可變對象的不可變對象嗎
如何對一組對象進行排序
方法
構造器(constructor)是否可被重寫(override)
方法可以同時即是static 又是synchronized 的嗎
abstract 的method是否可同時是static,是否可同時是native,是否可同時是synchronized
Java支持哪種參數傳遞類型一個對像被當作參數傳遞到一個方法,是值傳遞還是引用傳遞當一個對像被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裡到底是值傳遞還是引用傳遞我們能否重載main()方法如果main方法被聲明為private會怎樣
GC
概念
GC是什麼?為什麼要有GC
什麼時候會導致垃圾回收
GC是怎麼樣運行的新老以及永久區是什麼
GC 有幾種方式?怎麼配置什麼時候一個對象會被GC? 如何判斷一個對像是否存活
System.gc() Runtime.gc()會做什麼事情? 能保證GC 執行嗎垃圾回收器可以馬上回收內存嗎?有什麼辦法主動通知虛擬機進行垃圾回收?
Minor GC 、Major GC、Young GC 與Full GC分別在什麼時候發生垃圾回收算法的實現原理如果對象的引用被置為null,垃圾收集器是否會立即釋放對象佔用的內存?
垃圾回收的最佳做法是什麼
GC收集器有哪些
垃圾回收器的基本原理是什麼?
串行(serial)收集器和吞吐量(throughput)收集器的區別是什麼
Serial 與Parallel GC之間的不同之處
CMS 收集器與G1 收集器的特點與區別
CMS垃圾回收器的工作過程
JVM 中一次完整的GC 流程是怎樣的? 對像如何晉升到老年代吞吐量優先和響應優先的垃圾收集器選擇
GC策略
舉個實際的場景,選擇一個GC策略
JVM的永久代中會發生垃圾回收嗎
收集方法
標記清除、標記整理、複製算法的原理與特點?分別用在什麼地方如果讓你優化收集方法,有什麼思路
JVM
參數
說說你知道的幾種主要的jvm 參數
-XX:+UseCompressedOops 有什麼作用
類加載器(ClassLoader)
Java 類加載器都有哪些
JVM如何加載字節碼文件
內存管理
JVM內存分哪幾個區,每個區的作用是什麼一個對像從創建到銷毀都是怎麼在這些部分裡存活和轉移的解釋內存中的棧(stack)、堆(heap)和方法區(method area)的用法
JVM中哪個參數是用來控制線程的棧堆棧小簡述內存分配與回收策略簡述重排序,內存屏障,happen-before,主內存,工作內存
Java中存在內存洩漏問題嗎?請舉例說明簡述Java 中軟引用(SoftReferenc)、弱引用(WeakReference)和虛引用
內存映射緩存區是什麼
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。