百度“Java面試題”前200頁精選中篇
多線程
基本概念
什麼是線程多線程的優點
多線程的幾種實現方式
1.用Runnable 還是Thread
什麼是線程安全
多線程中的忙循環是什麼如何創建一個線程編寫多線程程序有幾種實現方式什麼是線程局部變量線程和進程有什麼區別?進程間如何通訊,線程間如何通訊什麼是多線程環境下的偽共享(false sharing)
同步和異步有何異同,在什麼情況下分別使用他們?舉例說明
Current
ConcurrentHashMap 和Hashtable的區別
ArrayBlockingQueue, CountDownLatch的用法
ConcurrentHashMap的並發度是什麼
CyclicBarrier 和CountDownLatch有什麼不同?各自的內部原理和用法是什麼
Semaphore的用法
Thread
啟動一個線程是調用run() 還是start() 方法? start() 和run() 方法有什麼區別調用start()方法時會執行run()方法,為什麼不能直接調用run()方法
sleep() 方法和對象的wait() 方法都可以讓線程暫停執行,它們有什麼區別
yield方法有什麼作用? sleep() 方法和yield() 方法有什麼區別
Java 中如何停止一個線程
stop() 和suspend() 方法為何不推薦使用如何在兩個線程間共享數據如何強制啟動一個線程如何讓正在運行的線程暫停一段時間什麼是線程組,為什麼在Java中不推薦使用你是如何調用wait(方法的)?使用if 塊還是循環?為什麼
生命週期
有哪些不同的線程生命週期線程狀態,BLOCKED 和WAITING 有什麼區別畫一個線程的生命週期狀態圖
ThreadLocal 用途是什麼,原理是什麼,用的時候要注意什麼
ThreadPool
線程池是什麼?為什麼要使用它如何創建一個Java線程池
ThreadPool用法與優勢提交任務時,線程池隊列已滿時會發會生什麼
newCache 和newFixed 有什麼區別?簡述原理。構造函數的各個參數的含義是什麼,比如coreSize, maxsize 等線程池的實現策略線程池的關閉方式有幾種,各自的區別是什麼線程池中submit() 和execute()方法有什麼區別?
線程調度
Java中用到的線程調度算法是什麼什麼是多線程中的上下文切換你對線程優先級的理解是什麼什麼是線程調度器(Thread Scheduler) 和時間分片(Time Slicing)
線程同步
請說出你所知的線程同步的方法
synchronized 的原理是什麼
synchronized 和ReentrantLock 有什麼不同什麼場景下可以使用volatile 替換synchronized
有T1,T2,T3三個線程,怎麼確保它們按順序執行?怎樣保證T2在T1執行完後執行,T3在T2執行完後執行同步塊內的線程拋出異常會發生什麼當一個線程進入一個對象的synchronized 方法A 之後,其它線程是否可進入此對象的synchronized 方法B
使用synchronized 修飾靜態方法和非靜態方法有什麼區別如何從給定集合那裡創建一個synchronized 的集合
鎖
Java Concurrency API 中的Lock 接口是什麼?對比同步它有什麼優勢
Lock 與Synchronized 的區別? Lock 接口比synchronized 塊的優勢是什麼
ReadWriteLock是什麼?
鎖機制有什麼用什麼是樂觀鎖(Optimistic Locking)?如何實現樂觀鎖?如何避免ABA問題解釋以下名詞:重排序,自旋鎖,偏向鎖,輕量級鎖,可重入鎖,公平鎖,非公平鎖,樂觀鎖,悲觀鎖什麼時候應該使用可重入鎖簡述鎖的等級方法鎖、對象鎖、類鎖
Java中活鎖和死鎖有什麼區別?
什麼是死鎖(Deadlock)?導致線程死鎖的原因?如何確保N 個線程可以訪問N 個資源同時又不導致死鎖死鎖與活鎖的區別,死鎖與飢餓的區別怎麼檢測一個線程是否擁有鎖如何實現分佈式鎖有哪些無鎖數據結構,他們實現的原理是什麼
讀寫鎖可以用於什麼應用場景
異常
基本概念
Error 和Exception有什麼區別
1.UnsupportedOperationException是什麼
2.NullPointerException 和ArrayIndexOutOfBoundException 之間有什麼相同之處
什麼是受檢查的異常,什麼是運行時異常運行時異常與一般異常有何異同簡述一個你最常見到的runtime exception(運行時異常)
finally
finally關鍵詞在異常處理中如何使用
1.如果執行finally代碼塊之前方法返回了結果,或者JVM退出了,finally塊中的代碼還會執行嗎
2.try裡有return,finally還執行麼?那麼緊跟在這個try後的finally {}裡的code會不會被執行,什麼時候被執行,在return前還是後
3.在什麼情況下,finally語句不會執行
throw 和throws 有什麼區別?
OOM你遇到過哪些情況?你是怎麼搞定的?
SOF你遇到過哪些情況?
既然我們可以用RuntimeException來處理錯誤,那麼你認為為什麼Java中還存在檢查型異常當自己創建異常類的時候應該注意什麼導致空指針異常的原因異常處理handle or declare 原則應該如何理解怎麼利用JUnit 來測試一個方法的異常
catch塊裡別不寫代碼有什麼問題你曾經自定義實現過異常嗎?怎麼寫的什麼是異常鏈在try塊中可以拋出異常嗎
JDBC
通過JDBC 連接數據庫有哪幾種方式闡述JDBC 操作數據庫的基本步驟
JDBC 中如何進行事務處理什麼是JdbcTemplate
什麼是DAO 模塊使用JDBC 操作數據庫時,如何提升讀取數據的性能?如何提升更新數據的性能列出5 個應該遵循的JDBC 最佳實踐
IO
File
File類型中定義了什麼方法來創建一級目錄
File類型中定義了什麼方法來判斷一個文件是否存在
流
為了提高讀寫性能,可以採用什麼流
Java中有幾種類型的流
JDK 為每種類型的流提供了一些抽像類以供繼承,分別是哪些類對文本文件操作用什麼I/O流對各種基本數據類型和String類型的讀寫,採用什麼流能指定字符編碼的I/O 流類型是什麼
序列化
什麼是序列化?如何實現Java 序列化及注意事項
Serializable 與Externalizable 的區別
Socket
socket 選項TCP NO DELAY 是指什麼
Socket 工作在TCP/IP 協議棧是哪一層
TCP、UDP 區別及Java 實現方式
說幾點IO 的最佳實踐直接緩衝區與非直接緩衝器有什麼區別?
怎麼讀寫ByteBuffer? ByteBuffer 中的字節序是什麼當用System.in.read(buffer)從鍵盤輸入一行n個字符後,存儲在緩衝區buffer中的字節數是多少如何使用掃描器類(Scanner Class)令牌化
面向對象編程(OOP)
解釋下多態性(polymorphism),封裝性(encapsulation),內聚(cohesion)以及耦合(coupling)
多態的實現原理封裝、繼承和多態是什麼對象封裝的原則是什麼?
類
獲得一個類的類對像有哪些方式重載(Overload)和重寫(Override)的區別。重載的方法能否根據返回類型進行區分?
說出幾條Java 中方法重載的最佳實踐
抽像類
抽像類和接口的區別抽像類中是否可以有靜態的main方法抽像類是否可實現(implements)接口抽像類是否可繼承具體類(concrete class)
匿名類(Anonymous Inner Class)
匿名內部類是否可以繼承其它類?是否可以實現接口
內部類
內部類分為幾種內部類可以引用它的包含類(外部類)的成員嗎請說一下Java 中為什麼要引入內部類?還有匿名內部類
繼承
繼承(Inheritance)與聚合(Aggregation)的區別在哪裡繼承和組合之間有什麼不同為什麼類只能單繼承,接口可以多繼承存在兩個類,B 繼承A,C 繼承B,能將B 轉換為C 麼?如C = (C) B
如果類a 繼承類b,實現接口c,而類b 和接口c 中定義了同名變量,請問會出現什麼問題
接口
接口是什麼接口是否可繼承接口為什麼要使用接口而不是直接使用具體類?接口有什麼優點
泛型
泛型的存在是用來解決什麼問題泛型的常用特點
List能否轉為List
工具類
日曆
Calendar Class的用途如何在Java中獲取日曆類的實例解釋一些日曆類中的重要方法
GregorianCalendar 類是什麼
SimpleTimeZone 類是什麼
Locale類是什麼如何格式化日期對像如何添加小時(hour)到一個日期對象(Date Objects)
如何將字符串YYYYMMDD 轉換為日期
Math
Math.round()什麼作用? Math.round(11.5) 等於多少? Math.round(-11.5)等於多少?
XML
XML文檔定義有幾種形式?它們之間有何本質區別?解析XML文檔有哪幾種方式? DOM 和SAX 解析器有什麼不同?
Java解析XML的方式用jdom 解析xml 文件時如何解決中文問題?如何解析你在項目中用到了XML 技術的哪些方面?如何實現
動態代理
描述動態代理的幾種實現方式,分別說出相應的優缺點
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。