真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java面試時(shí)需要了解的知識(shí)點(diǎn)有哪些

這篇文章將為大家詳細(xì)講解有關(guān)Java面試時(shí)需要了解的知識(shí)點(diǎn)有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

超過10多年行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,小程序制作,微信開發(fā),手機(jī)APP定制開發(fā),同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!

多線程

基本概念

什么是線程
多線程的優(yōu)點(diǎn)

多線程的幾種實(shí)現(xiàn)方式
1.用 Runnable 還是 Thread

什么是線程安全

  • Vector, SimpleDateFormat 是線程安全類嗎

  • 什么 Java 原型不是線程安全的

  • 哪些集合類是線程安全的

多線程中的忙循環(huán)是什么
如何創(chuàng)建一個(gè)線程
編寫多線程程序有幾種實(shí)現(xiàn)方式
什么是線程局部變量
線程和進(jìn)程有什么區(qū)別?進(jìn)程間如何通訊,線程間如何通訊
什么是多線程環(huán)境下的偽共享(false sharing)
同步和異步有何異同,在什么情況下分別使用他們?舉例說明

Current

ConcurrentHashMap 和 Hashtable的區(qū)別
ArrayBlockingQueue, CountDownLatch的用法
ConcurrentHashMap的并發(fā)度是什么

CyclicBarrier 和 CountDownLatch有什么不同?各自的內(nèi)部原理和用法是什么
Semaphore的用法
Thread

啟動(dòng)一個(gè)線程是調(diào)用 run() 還是 start() 方法?start() 和 run() 方法有什么區(qū)別
調(diào)用start()方法時(shí)會(huì)執(zhí)行run()方法,為什么不能直接調(diào)用run()方法
sleep() 方法和對(duì)象的 wait() 方法都可以讓線程暫停執(zhí)行,它們有什么區(qū)別
yield方法有什么作用?sleep() 方法和 yield() 方法有什么區(qū)別
Java 中如何停止一個(gè)線程
stop() 和 suspend() 方法為何不推薦使用
如何在兩個(gè)線程間共享數(shù)據(jù)
如何強(qiáng)制啟動(dòng)一個(gè)線程
如何讓正在運(yùn)行的線程暫停一段時(shí)間
什么是線程組,為什么在Java中不推薦使用
你是如何調(diào)用 wait(方法的)?使用 if 塊還是循環(huán)?為什么

生命周期

有哪些不同的線程生命周期
線程狀態(tài),BLOCKED 和 WAITING 有什么區(qū)別
畫一個(gè)線程的生命周期狀態(tài)圖

ThreadLocal 用途是什么,原理是什么,用的時(shí)候要注意什么
ThreadPool

線程池是什么?為什么要使用它
如何創(chuàng)建一個(gè)Java線程池
ThreadPool用法與優(yōu)勢(shì)
提交任務(wù)時(shí),線程池隊(duì)列已滿時(shí)會(huì)發(fā)會(huì)生什么
newCache 和 newFixed 有什么區(qū)別?簡(jiǎn)述原理。構(gòu)造函數(shù)的各個(gè)參數(shù)的含義是什么,比如 coreSize, maxsize 等
線程池的實(shí)現(xiàn)策略
線程池的關(guān)閉方式有幾種,各自的區(qū)別是什么
線程池中submit() 和 execute()方法有什么區(qū)別?

線程調(diào)度

Java中用到的線程調(diào)度算法是什么
什么是多線程中的上下文切換
你對(duì)線程優(yōu)先級(jí)的理解是什么
什么是線程調(diào)度器 (Thread Scheduler) 和時(shí)間分片 (Time Slicing)

線程同步

請(qǐng)說出你所知的線程同步的方法
synchronized 的原理是什么
synchronized 和 ReentrantLock 有什么不同
什么場(chǎng)景下可以使用 volatile 替換 synchronized
有T1,T2,T3三個(gè)線程,怎么確保它們按順序執(zhí)行?怎樣保證T2在T1執(zhí)行完后執(zhí)行,T3在T2執(zhí)行完后執(zhí)行
同步塊內(nèi)的線程拋出異常會(huì)發(fā)生什么
當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的 synchronized 方法A 之后,其它線程是否可進(jìn)入此對(duì)象的 synchronized 方法B
使用 synchronized 修飾靜態(tài)方法和非靜態(tài)方法有什么區(qū)別
如何從給定集合那里創(chuàng)建一個(gè) synchronized 的集合

Java Concurrency API 中 的 Lock 接口是什么?對(duì)比同步它有什么優(yōu)勢(shì)
Lock 與 Synchronized 的區(qū)別?Lock 接口比 synchronized 塊的優(yōu)勢(shì)是什么
ReadWriteLock是什么?
鎖機(jī)制有什么用
什么是樂觀鎖(Optimistic Locking)?如何實(shí)現(xiàn)樂觀鎖?如何避免ABA問題
解釋以下名詞:重排序,自旋鎖,偏向鎖,輕量級(jí)鎖,可重入鎖,公平鎖,非公平鎖,樂觀鎖,悲觀鎖
什么時(shí)候應(yīng)該使用可重入鎖
簡(jiǎn)述鎖的等級(jí)方法鎖、對(duì)象鎖、類鎖
Java中活鎖和死鎖有什么區(qū)別?
什么是死鎖(Deadlock)?導(dǎo)致線程死鎖的原因?如何確保 N 個(gè)線程可以訪問 N 個(gè)資源同時(shí)又不導(dǎo)致死鎖
死鎖與活鎖的區(qū)別,死鎖與饑餓的區(qū)別
怎么檢測(cè)一個(gè)線程是否擁有鎖
如何實(shí)現(xiàn)分布式鎖
有哪些無鎖數(shù)據(jù)結(jié)構(gòu),他們實(shí)現(xiàn)的原理是什么

讀寫鎖可以用于什么應(yīng)用場(chǎng)景

  • Executors類是什么? Executor和Executors的區(qū)別

  • 什么是Java線程轉(zhuǎn)儲(chǔ)(Thread Dump),如何得到它

  • 如何在Java中獲取線程堆棧

  • 說出 3 條在 Java 中使用線程的最佳實(shí)踐

  • 在線程中你怎么處理不可捕捉異常

  • 實(shí)際項(xiàng)目中使用多線程舉例。你在多線程環(huán)境中遇到的常見的問題是什么?你是怎么解決它的

  • 請(qǐng)說出與線程同步以及線程調(diào)度相關(guān)的方法

  • 程序中有3個(gè) socket,需要多少個(gè)線程來處理

  • 假如有一個(gè)第三方接口,有很多個(gè)線程去調(diào)用獲取數(shù)據(jù),現(xiàn)在規(guī)定每秒鐘最多有 10 個(gè)線程同時(shí)調(diào)用它,如何做到

  • 如何在 Windows 和 Linux 上查找哪個(gè)線程使用的 CPU 時(shí)間最長

  • 如何確保 main() 方法所在的線程是 Java 程序最后結(jié)束的線程

  • 非常多個(gè)線程(可能是不同機(jī)器),相互之間需要等待協(xié)調(diào)才能完成某種工作,問怎么設(shè)計(jì)這種協(xié)調(diào)方案

  • 你需要實(shí)現(xiàn)一個(gè)高效的緩存,它允許多個(gè)用戶讀,但只允許一個(gè)用戶寫,以此來保持它的完整性,你會(huì)怎樣去實(shí)現(xiàn)它

異常

基本概念

Error 和 Exception有什么區(qū)別
1.UnsupportedOperationException是什么
2.NullPointerException 和 ArrayIndexOutOfBoundException 之間有什么相同之處

什么是受檢查的異常,什么是運(yùn)行時(shí)異常
運(yùn)行時(shí)異常與一般異常有何異同
簡(jiǎn)述一個(gè)你最常見到的runtime exception(運(yùn)行時(shí)異常)

finally

finally關(guān)鍵詞在異常處理中如何使用
1.如果執(zhí)行finally代碼塊之前方法返回了結(jié)果,或者JVM退出了,finally塊中的代碼還會(huì)執(zhí)行嗎
2.try里有return,finally還執(zhí)行么?那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后
3.在什么情況下,finally語句不會(huì)執(zhí)行

throw 和 throws 有什么區(qū)別?
OOM你遇到過哪些情況?你是怎么搞定的?
SOF你遇到過哪些情況?
既然我們可以用RuntimeException來處理錯(cuò)誤,那么你認(rèn)為為什么Java中還存在檢查型異常
當(dāng)自己創(chuàng)建異常類的時(shí)候應(yīng)該注意什么
導(dǎo)致空指針異常的原因
異常處理 handle or declare 原則應(yīng)該如何理解
怎么利用 JUnit 來測(cè)試一個(gè)方法的異常
catch塊里別不寫代碼有什么問題
你曾經(jīng)自定義實(shí)現(xiàn)過異常嗎?怎么寫的
什么是 異常鏈
在try塊中可以拋出異常嗎

JDBC

通過 JDBC 連接數(shù)據(jù)庫有哪幾種方式
闡述 JDBC 操作數(shù)據(jù)庫的基本步驟
JDBC 中如何進(jìn)行事務(wù)處理
什么是 JdbcTemplate
什么是 DAO 模塊
使用 JDBC 操作數(shù)據(jù)庫時(shí),如何提升讀取數(shù)據(jù)的性能?如何提升更新數(shù)據(jù)的性能
列出 5 個(gè)應(yīng)該遵循的 JDBC 最佳實(shí)踐

IO

File

File類型中定義了什么方法來創(chuàng)建一級(jí)目錄
File類型中定義了什么方法來判斷一個(gè)文件是否存在

為了提高讀寫性能,可以采用什么流
Java中有幾種類型的流
JDK 為每種類型的流提供了一些抽象類以供繼承,分別是哪些類
對(duì)文本文件操作用什么I/O流
對(duì)各種基本數(shù)據(jù)類型和String類型的讀寫,采用什么流
能指定字符編碼的 I/O 流類型是什么

序列化

什么是序列化?如何實(shí)現(xiàn) Java 序列化及注意事項(xiàng)
Serializable 與 Externalizable 的區(qū)別

Socket

socket 選項(xiàng) TCP NO DELAY 是指什么
Socket 工作在 TCP/IP 協(xié)議棧是哪一層
TCP、UDP 區(qū)別及 Java 實(shí)現(xiàn)方式

說幾點(diǎn) IO 的最佳實(shí)踐
直接緩沖區(qū)與非直接緩沖器有什么區(qū)別?
怎么讀寫 ByteBuffer?ByteBuffer 中的字節(jié)序是什么
當(dāng)用System.in.read(buffer)從鍵盤輸入一行n個(gè)字符后,存儲(chǔ)在緩沖區(qū)buffer中的字節(jié)數(shù)是多少
如何使用掃描器類(Scanner Class)令牌化

面向?qū)ο缶幊蹋∣OP)

解釋下多態(tài)性(polymorphism),封裝性(encapsulation),內(nèi)聚(cohesion)以及耦合(coupling)
多態(tài)的實(shí)現(xiàn)原理
封裝、繼承和多態(tài)是什么
對(duì)象封裝的原則是什么?


獲得一個(gè)類的類對(duì)象有哪些方式
重載(Overload)和重寫(Override)的區(qū)別。重載的方法能否根據(jù)返回類型進(jìn)行區(qū)分?
說出幾條 Java 中方法重載的最佳實(shí)踐

抽象類

抽象類和接口的區(qū)別
抽象類中是否可以有靜態(tài)的main方法
抽象類是否可實(shí)現(xiàn)(implements)接口
抽象類是否可繼承具體類(concrete class)

匿名類(Anonymous Inner Class)

匿名內(nèi)部類是否可以繼承其它類?是否可以實(shí)現(xiàn)接口

內(nèi)部類

內(nèi)部類分為幾種
內(nèi)部類可以引用它的包含類(外部類)的成員嗎
請(qǐng)說一下 Java 中為什么要引入內(nèi)部類?還有匿名內(nèi)部類

繼承

繼承(Inheritance)與聚合(Aggregation)的區(qū)別在哪里
繼承和組合之間有什么不同
為什么類只能單繼承,接口可以多繼承
存在兩個(gè)類,B 繼承 A,C 繼承 B,能將 B 轉(zhuǎn)換為 C 么?如 C = (C) B
如果類 a 繼承類 b,實(shí)現(xiàn)接口c,而類 b 和接口 c 中定義了同名變量,請(qǐng)問會(huì)出現(xiàn)什么問題

接口

接口是什么
接口是否可繼承接口
為什么要使用接口而不是直接使用具體類?接口有什么優(yōu)點(diǎn)

泛型

泛型的存在是用來解決什么問題
泛型的常用特點(diǎn)
List能否轉(zhuǎn)為List

工具類

日歷

Calendar Class的用途
如何在Java中獲取日歷類的實(shí)例
解釋一些日歷類中的重要方法
GregorianCalendar 類是什么
SimpleTimeZone 類是什么
Locale類是什么
如何格式化日期對(duì)象
如何添加小時(shí)(hour)到一個(gè)日期對(duì)象(Date Objects)
如何將字符串 YYYYMMDD 轉(zhuǎn)換為日期

Math

Math.round()什么作用?Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

XML

XML文檔定義有幾種形式?它們之間有何本質(zhì)區(qū)別?解析XML文檔有哪幾種方式?DOM 和 SAX 解析器有什么不同?
Java解析XML的方式
用 jdom 解析 xml 文件時(shí)如何解決中文問題?如何解析
你在項(xiàng)目中用到了 XML 技術(shù)的哪些方面?如何實(shí)現(xiàn)

動(dòng)態(tài)代理

描述動(dòng)態(tài)代理的幾種實(shí)現(xiàn)方式,分別說出相應(yīng)的優(yōu)缺點(diǎn)

關(guān)于Java面試時(shí)需要了解的知識(shí)點(diǎn)有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


文章名稱:Java面試時(shí)需要了解的知識(shí)點(diǎn)有哪些
轉(zhuǎn)載注明:http://weahome.cn/article/jhjgoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部