Java IO 和 NIO 的面試題
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了門源免費(fèi)建站歡迎大家使用!
IO 是 Java 面試中一個(gè)非常重要的點(diǎn)。你應(yīng)該很好掌握 Java IO,NIO,NIO2 以及與操作系統(tǒng),磁盤 IO 相關(guān)的基礎(chǔ)知識(shí)。下面是 Java IO 中經(jīng)常問的問題。
66)在我 Java 程序中,我有三個(gè) socket,我需要多少個(gè)線程來處理?
67)Java 中怎么創(chuàng)建 ByteBuffer?
68)Java 中,怎么讀寫 ByteBuffer ?
69)Java 采用的是大端還是小端?
70)ByteBuffer 中的字節(jié)序是什么?
71)Java 中,直接緩沖區(qū)與非直接緩沖器有什么區(qū)別?
72)Java 中的內(nèi)存映射緩存區(qū)是什么?
73)socket 選項(xiàng) TCP NO DELAY 是指什么?
74)TCP 協(xié)議與 UDP 協(xié)議有什么區(qū)別?
75)Java 中,ByteBuffer 與 StringBuffer有什么區(qū)別?
Java 最佳實(shí)踐的面試問題
包含 Java 中各個(gè)部分的最佳實(shí)踐,如集合,字符串,IO,多線程,錯(cuò)誤和異常處理,設(shè)計(jì)模式等等。
76)Java 中,編寫多線程程序的時(shí)候你會(huì)遵循哪些最佳實(shí)踐?
77)說出幾點(diǎn) Java 中使用 Collections 的最佳實(shí)踐
78)說出至少 5 點(diǎn)在 Java 中使用線程的最佳實(shí)踐。
79)說出 5 條 IO 的最佳實(shí)踐
80)列出 5 個(gè)應(yīng)該遵循的 JDBC 最佳實(shí)踐
81)說出幾條 Java 中方法重載的最佳實(shí)踐?
Date、Time 及 Calendar 的面試題
82)在多線程環(huán)境下,SimpleDateFormat 是線程安全的嗎?
83)Java 中如何格式化一個(gè)日期?如格式化為 ddMMyyyy 的形式?
84)Java 中,怎么在格式化的日期中顯示時(shí)區(qū)?
85)Java 中 java.util.Date 與 java.sql.Date 有什么區(qū)別?
86)Java 中,如何計(jì)算兩個(gè)日期之間的差距?
87)Java 中,如何將字符串 YYYYMMDD 轉(zhuǎn)換為日期?
單元測(cè)試 JUnit 面試題
89)如何測(cè)試靜態(tài)方法?
90)怎么利用 JUnit 來測(cè)試一個(gè)方法的異常?
91)你使用過哪個(gè)單元測(cè)試庫來測(cè)試你的 Java 程序?
92)@Before 和 @BeforeClass 有什么區(qū)別?
編程和代碼相關(guān)的面試題
93)怎么檢查一個(gè)字符串只包含數(shù)字?
94)Java 中如何利用泛型寫一個(gè) LRU 緩存?
95)寫一段 Java 程序?qū)?byte 轉(zhuǎn)換為 long?
95)在不使用 StringBuffer 的前提下,怎么反轉(zhuǎn)一個(gè)字符串?
97)Java 中,怎么獲取一個(gè)文件中單詞出現(xiàn)的最高頻率?
98)如何檢查出兩個(gè)給定的字符串是反序的?
99)Java 中,怎么打印出一個(gè)字符串的所有排列?
100)Java 中,怎樣才能打印出數(shù)組中的重復(fù)元素?
101)Java 中如何將字符串轉(zhuǎn)換為整數(shù)?
102)在沒有使用臨時(shí)變量的情況如何交換兩個(gè)整數(shù)變量的值?
關(guān)于 OOP 和設(shè)計(jì)模式的面試題
這部分包含 Java 面試過程中關(guān)于 SOLID 的設(shè)計(jì)原則,OOP 基礎(chǔ),如類,對(duì)象,接口,繼承,多態(tài),封裝,抽象以及更高級(jí)的一些概念,如組合、聚合及關(guān)聯(lián)。也包含了 GOF 設(shè)計(jì)模式的問題。
103)接口是什么?為什么要使用接口而不是直接使用具體類?
104)Java 中,抽象類與接口之間有什么不同?
105)除了單例模式,你在生產(chǎn)環(huán)境中還用過什么設(shè)計(jì)模式?
106)你能解釋一下里氏替換原則嗎?
107) 什么情況下會(huì)違反迪米特法則?為什么會(huì)有這個(gè)問題?
108)適配器模式是什么?什么時(shí)候使用?
109)什么是“依賴注入”和“控制反轉(zhuǎn)”?為什么有人使用?
110)抽象類是什么?它與接口有什么區(qū)別?你為什么要使用過抽象類?
111)構(gòu)造器注入和 setter 依賴注入,那種方式更好?
112)依賴注入和工廠模式之間有什么不同?
113)適配器模式和裝飾器模式有什么區(qū)別?
114)適配器模式和代理模式之前有什么不同?
115)什么是模板方法模式?
116)什么時(shí)候使用訪問者模式?
117)什么時(shí)候使用組合模式?
118)繼承和組合之間有什么不同?
119)描述 Java 中的重載和重寫?
120)Java 中,嵌套公共靜態(tài)類與頂級(jí)類有什么不同?
121) OOP 中的 組合、聚合和關(guān)聯(lián)有什么區(qū)別?
122)給我一個(gè)符合開閉原則的設(shè)計(jì)模式的例子?
123)抽象工廠模式和原型模式之間的區(qū)別?
124)什么時(shí)候使用享元模式?
Java 面試中其他各式各樣的問題
這部分包含 Java 中關(guān)于 XML 的面試題,JDBC 面試題,正則表達(dá)式面試題,Java 錯(cuò)誤和異常及序列化面試題
125)嵌套靜態(tài)類與頂級(jí)類有什么區(qū)別?
126)你能寫出一個(gè)正則表達(dá)式來判斷一個(gè)字符串是否是一個(gè)數(shù)字嗎?
127)Java 中,受檢查異常 和 不受檢查異常的區(qū)別?
128)Java 中,throw 和 throws 有什么區(qū)別?
129)Java 中,Serializable 與 Externalizable 的區(qū)別?
130)Java 中,DOM 和 SAX 解析器有什么不同?
131)說出 JDK 1.7 中的三個(gè)新特性?(答案)
132)說出 5 個(gè) JDK 1.8 引入的新特性?
133)Java 中,Maven 和 ANT 有什么區(qū)別?
答案
部分面試答案資料截圖
完整面試答案資料領(lǐng)取方式:加入Java高并發(fā): 957734884,群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,redis,Kafka,MySQL,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識(shí)點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時(shí)間來學(xué)習(xí)提升自己,不要再用"沒有時(shí)間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個(gè)交代!