Java面試題(一)
1、面向物件的特征有哪些方面?
2、訪問修飾符 public,private,protected,以及不寫(默認)時的區別?
3、String 是最基本的資料型別嗎?
4、float f=3.4;是否正確?
5、short s1 = 1; s1 = s1 + 1;有錯嗎?short s1 = 1; s1 += 1;有錯嗎?
6、Java 有沒有 goto?
7、int 和 Integer 有什么區別?
8、&和&&的區別?
9、解釋記憶體中的堆疊(stack)、堆(heap)和方法區(method area)的用法,
10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
11、switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
12、用最有效率的方法計算 2 乘以 8?
13、陣列有沒有 length()方法?String 有沒有 length()方法?
14、在 Java 中,如何跳出當前的多重嵌套回圈?
15、構造器(constructor)是否可被重寫(override)?
16、兩個物件值相同(x.equals(y) == true),但卻可有不同的 hashcode,這句話對不對?
17、是否可以繼承 String 類?
18、當一個物件被當作引數傳遞到一個方法后,此方法可改變這個物件的屬性,并可回傳變化后的結果,那么這里到底是值傳遞還是參考傳遞?
19、String 和 StringBuilder、StringBuffer 的區別?
20、多載(Overload)和重寫(Override)的區別,多載的方法能否根據回傳型別進行區分?
21、描述一下 JVM 加載 class 檔案的原理機制?
22、char 型變數中能不能存貯一個中文漢字,為什么?
23、抽象類(abstract class)和介面(interface)有什么異同?
24、靜態嵌套類(Static Nested Class)和內部類(Inner Class)的不同?
25、Java 中會存在記憶體泄漏嗎,請簡單描述,
26、抽象的(abstract)方法是否可同時是靜態的(static),是否可同時是本地方法(native),是否可同時被 synchronized 修飾?
27、闡述靜態變數和實體變數的區別,
28、是否可以從一個靜態(static)方法內部發出對非靜態(non-static)方法的呼叫?
29、如何實作物件克隆?
30、GC 是什么?為什么要有 GC?
31、String s = new String(“xyz”);創建了幾個字串物件?
32 、 接 口 是 否 可 繼 承 ( extends ) 接 口 ?抽 象 類 是 否 可 實 現(implements)介面?抽象類是否可繼承具體類(concrete class)?
33、一個”.java”源檔案中是否可以包含多個類(不是內部類)?有什么限制?
34、Anonymous Inner Class(匿名內部類)是否可以繼承其它類?是否可以實作介面?
35、內部類可以參考它的包含類(外部類)的成員嗎?有沒有什么限制?
36、Java 中的 final 關鍵字有哪些用法?
37、指出下面程式的運行結果
38、資料型別之間的轉換:
39、如何實作字串的反轉及替換?
40、怎樣將 GB2312 編碼的字串轉換為 ISO-8859-1 編碼的字串?
41、日期和時間:
42、列印昨天的當前時刻,
43、比較一下 Java 和 JavaSciprt,
44、什么時候用斷言(assert)?
45、Error 和 Exception 有什么區別?
46、try{}里有一個 return 陳述句,那么緊跟在這個 try 后的 finally{}里的代碼會不會被執行,什么時候被執行,在 return 前還是后?
47、Java 語言如何進行例外處理,關鍵字:throws、throw、try、catch、finally 分別如何使用?
48、運行時例外與受檢例外有何異同?
49、列出一些你常見的運行時例外?
50、闡述 final、finally、finalize 的區別,
51、類 ExampleA 繼承 Exception,類 ExampleB 繼承 ExampleA,
52、List、Set、Map 是否繼承自 Collection 介面?
53、闡述 ArrayList、Vector、LinkedList 的存盤性能和特性,
54、Collection 和 Collections 的區別?
55、List、Map、Set 三個介面存取元素時,各有什么特點?
56、TreeMap 和 TreeSet 在排序時如何比較元素?Collections 工具類中的 sort()方法如何比較元素?
57、Thread 類的 sleep()方法和物件的 wait()方法都可以讓執行緒暫停執行,它們有什么區別?
58、執行緒的 sleep()方法和 yield()方法有什么區別?
59、當一個執行緒進入一個物件的 synchronized 方法 A 之后,其它執行緒是否可進入此物件 synchronized 方法 B?
60、請說出與執行緒同步以及執行緒調度相關的方法,
61、撰寫多執行緒程式有幾種實作方式?
62、synchronized 關鍵字的用法?
63、舉例說明同步和異步,
64、啟動一個執行緒是呼叫 run()還是 start()方法?
65、什么是執行緒池(thread pool)?
66、執行緒的基本狀態以及狀態之間的關系?
67、簡述 synchronized 和 java.util.concurrent.locks.Lock 的異同?
68、Java 中如何實作序列化,有什么意義?
69、Java 中有幾種型別的流?
70、寫一個方法,輸入一個檔案名和一個字串,統計這個字串在這個檔案中出現的次數,
71、如何用 Java 代碼列出一個目錄下所有的檔案?
72、用 Java 的套接字編程實作一個多執行緒的回顯(echo)服務器,
73、XML 檔案定義有幾種形式?它們之間有何本質區別?決議 XML檔案有哪幾種方式?
74、你在專案中哪些地方用到了 XML?
75、闡述 JDBC 操作資料庫的步驟,
76、Statement 和 PreparedStatement 有什么區別?哪個性能更好?
77、使用 JDBC 操作資料庫時,如何提升讀取資料的性能?如何提升更新資料的性能?
78、在進行資料庫編程時,連接池有什么作用?
79、什么是 DAO 模式?
80、事務的 ACID 是指什么?
82、JDBC 能否處理 Blob 和 Clob?
83、簡述正則運算式及其用途,
84、Java 中是如何支持正則運算式操作的?
85、獲得一個類的類物件有哪些方式?
88、如何通過反射呼叫物件的方法?
90、簡述一下你了解的設計模式,
91、用 Java 寫一個單例類,
92、什么是 UML?
93、UML 中有哪些常用的圖?
95、用 Java 寫一個折半查找,
Java 面試題(二)
1、Java 中能創建 volatile 陣列嗎?
2、volatile 能使得一個非原子操作變成原子操作嗎?
3、volatile 修飾符的有過什么實踐?
4、volatile 型別變數提供什么保證?
5、10 個執行緒和 2 個執行緒的同步代碼,哪個更容易寫?
6、你是如何呼叫 wait()方法的?使用 if 塊還是回圈?為什么?
8、什么是 Busy spin?我們為什么要使用它?
9、Java 中怎么獲取一份執行緒 dump 檔案?
10、Swing 是執行緒安全的?
11、什么是執行緒區域變數?
12、用 wait-notify 寫一段代碼來解決生產者-消費者問題?
13、用 Java 寫一個執行緒安全的單例模式(Singleton)?
14、Java 中 sleep 方法和 wait 方法的區別?
15、什么是不可變物件(immutable object)?Java 中怎么創建一個不可變物件?
16、我們能創建一個包含可變物件的不可變物件嗎?
17、Java 中應該使用什么資料型別來代表價格?
18、怎么將 byte 轉換為 String?
19、Java 中怎樣將 bytes 轉換為 long 型別?
20、我們能將 int 強制轉換為 byte 型別的變數嗎?如果該值大于byte 型別的范圍,將會出現什么現象?
21、存在兩個類,B 繼承 A ,C 繼承 B,我們能將 B 轉換為 C 么?如 C = (C) B;
22、哪個類包含 clone 方法?是 Cloneable 還是 Object?
23、Java 中 ++ 運算子是執行緒安全的嗎?
23、不是執行緒安全的操作,它涉及到多個指令,如讀取變數值,增加,然后存盤回記憶體,這個程序可能會出現多個執行緒交差,
24、a = a + b 與 a += b 的區別
25、我能在不進行強制轉換的情況下將一個 double 值賦值給 long型別的變數嗎?
26、3*0.1 == 0.3 將會回傳什么?true 還是 false?
27、int 和 Integer 哪個會占用更多的記憶體?
28、為什么 Java 中的 String 是不可變的(Immutable)?
31、64 位 JVM 中,int 的長度是多數?
32、Serial 與 Parallel GC 之間的不同之處?
33、32 位和 64 位的 JVM,int 型別變數的長度是多數?
34、Java 中 WeakReference 與 SoftReference 的區別?
35、WeakHashMap 是怎么作業的?
36、JVM 選項 -XX:+UseCompressedOops 有什么作用?為什么要使用?
37、怎樣通過 Java 程式來判斷 JVM 是 32 位 還是 64 位?
38、32 位 JVM 和 64 位 JVM 的最大堆記憶體分別是多數?
39、JRE、JDK、JVM 及 JIT 之間有什么不同?
40、解釋 Java 堆空間及 GC?
41、你能保證 GC 執行嗎?
42、怎么獲取 Java 程式使用的記憶體?堆使用的百分比?
43、Java 中堆和堆疊有什么區別?
44、“a==b”和”a.equals(b)”有什么區別?
45、a.hashCode() 有什么用?與 a.equals(b) 有什么關系?
46、final、finalize 和 finally 的不同之處?
47、Java 中的編譯期常量是什么?使用它又什么風險?
48、List、Set、Map 和 Queue 之間的區別(答案)
49、poll() 方法和 remove() 方法的區別?
50、Java 中 LinkedHashMap 和 PriorityQueue 的區別是什么?
51、ArrayList 與 LinkedList 的不區別?
52、用哪兩種方式來實作集合的排序?
53、Java 中怎么列印陣列?
54、Java 中的 LinkedList 是單向鏈表還是雙向鏈表?
55、Java 中的 TreeMap 是采用什么樹實作的?(答案)
56、Hashtable 與 HashMap 有什么不同之處?
57、Java 中的 HashSet,內部是如何作業的?
58、寫一段代碼在遍歷 ArrayList 時移除一個元素?
59、我們能自己寫一個容器類,然后使用 for-each 回圈碼?
60、ArrayList 和 HashMap 的默認大小是多數?
61、有沒有可能兩個不相等的物件有有相同的 hashcode?
62、兩個相同的物件會有不同的的 hash code 嗎?
63、我們可以在 hashcode() 中使用亂數字嗎?
64、Java 中,Comparator 與 Comparable 有什么不同?
66、在我 Java 程式中,我有三個 socket,我需要多少個執行緒來處理?
67、Java 中怎么創建 ByteBuffer?
68、Java 中,怎么讀寫 ByteBuffer ?
69、Java 采用的是大端還是小端?
70、ByteBuffer 中的位元組序是什么?
71、Java 中,直接緩沖區與非直接緩沖器有什么區別?
72、Java 中的記憶體映射快取區是什么?
73、socket 選項 TCP NO DELAY 是指什么?
74、TCP 協議與 UDP 協議有什么區別?
75、Java 中,ByteBuffer 與 StringBuffer 有什么區別?(答案)
76、Java 中,撰寫多執行緒程式的時候你會遵循哪些最佳實踐?
77、說出幾點 Java 中使用 Collections 的最佳實踐
78、說出至少 5 點在 Java 中使用執行緒的最佳實踐,
79、說出 5 條 IO 的最佳實踐(答案)
80、列出 5 個應該遵循的 JDBC 最佳實踐
81、說出幾條 Java 中方法多載的最佳實踐?
82、在多執行緒環境下,SimpleDateFormat 是執行緒安全的嗎?
83、Java 中如何格式化一個日期?如格式化為 ddMMyyyy 的形式?
84、Java 中,怎么在格式化的日期中顯示時區?
85、Java 中 java.util.Date 與 java.sql.Date 有什么區別?
86、Java 中,如何計算兩個日期之間的差距?
87、Java 中,如何將字串 YYYYMMDD 轉換為日期?
89、如何測驗靜態方法?(答案)
90、怎么利用 JUnit 來測驗一個方法的例外?
91、你使用過哪個單元測驗庫來測驗你的 Java 程式?
92、@Before 和 @BeforeClass 有什么區別?
93、怎么檢查一個字串只包含數字?解決方案
94、Java 中如何利用泛型寫一個 LRU 快取?
95、寫一段 Java 程式將 byte 轉換為 long?
96、在不使用 StringBuffer 的前提下,怎么反轉一個字串?
97、Java 中,怎么獲取一個檔案中單詞出現的最高頻率?
98、如何檢查出兩個給定的字串是反序的?
99、Java 中,怎么列印出一個字串的所有排列?
100、Java 中,怎樣才能列印出陣列中的重復元素?
101、Java 中如何將字串轉換為整數?
102、在沒有使用臨時變數的情況如何交換兩個整數變數的值?
103、介面是什么?為什么要使用介面而不是直接使用具體類?
104、Java 中,抽象類與介面之間有什么不同?
105、除了單例模式,你在生產環境中還用過什么設計模式?
106、你能解釋一下里氏替換原則嗎?
107、什么情況下會違反迪米特法則?為什么會有這個問題?
108、配接器模式是什么?什么時候使用?
109、什么是“依賴注入”和“控制反轉”?為什么有人使用?
110、抽象類是什么?它與介面有什么區別?你為什么要使用過抽象類?
111、構造器注入和 setter 依賴注入,那種方式更好?
112、依賴注入和工程模式之間有什么不同?
113、配接器模式和裝飾器模式有什么區別?
114、配接器模式和代理模式之前有什么不同?
115、什么是模板方法模式?
116、什么時候使用訪問者模式?
117、什么時候使用組合模式?
118、繼承和組合之間有什么不同?
119、描述 Java 中的多載和重寫?
120、Java 中,嵌套公共靜態類與頂級類有什么不同?
121、 OOP 中的 組合、聚合和關聯有什么區別?
122、給我一個符合開閉原則的設計模式的例子?
123、抽象工廠模式和原型模式之間的區別?
125、嵌套靜態類與頂級類有什么區別?
126、你能寫出一個正則運算式來判斷一個字串是否是一個數字嗎?
127、Java 中,受檢查例外 和 不受檢查例外的區別?
128、Java 中,throw 和 throws 有什么區別
129、Java 中,Serializable 與 Externalizable 的區別?
130、Java 中,DOM 和 SAX 決議器有什么不同?
131、說出 JDK 1.7 中的三個新特性?
132、說出 5 個 JDK 1.8 引入的新特性?
133、Java 中,Maven 和 ANT 有什么區別?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/3832.html
標籤:其他
上一篇:Centos 靜態網路配置
