- 相關(guān)推薦
170道經(jīng)久不衰的Java工程師面試題
無(wú)論是初入職場(chǎng)的菜鳥(niǎo),還是職場(chǎng)老油條,都不可能對(duì)Java技術(shù)面面精通,有些問(wèn)題在面試過(guò)程中又是極其刁鉆,下面是由百分網(wǎng)小編為大家準(zhǔn)備的170道Java工程師面試題,你敢來(lái)挑戰(zhàn)一下嗎?了解更多詳情資訊,請(qǐng)關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)!
1、面向?qū)ο蟮奶卣饔心男┓矫?
2、訪問(wèn)修飾符public,private,protected,以及不寫(默認(rèn))時(shí)的區(qū)別?
3、String 是最基本的數(shù)據(jù)類型嗎?
4、float f=3.4;是否正確?
5、short s1 = 1; s1 = s1 + 1;有錯(cuò)嗎?short s1 = 1; s1 += 1;有錯(cuò)嗎?
6、Java有沒(méi)有g(shù)oto?
7、int和Integer有什么區(qū)別?
8、&和&&的區(qū)別?
9、解釋內(nèi)存中的棧(stack)、堆(heap)和靜態(tài)區(qū)(static area)的用法。
10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
11、switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
12、用最有效率的方法計(jì)算2乘以8?
13、數(shù)組有沒(méi)有l(wèi)ength()方法?String有沒(méi)有l(wèi)ength()方法?
14、在Java中,如何跳出當(dāng)前的多重嵌套循環(huán)?
15、構(gòu)造器(constructor)是否可被重寫(override)?
16、兩個(gè)對(duì)象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對(duì)不對(duì)?
17、是否可以繼承String類?
18、當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
19、String和StringBuilder、StringBuffer的區(qū)別?
20、重載(Overload)和重寫(Override)的區(qū)別。重載的方法能否根據(jù)返回類型進(jìn)行區(qū)分?
21、描述一下JVM加載class文件的原理機(jī)制?
22、char 型變量中能不能存貯一個(gè)中文漢字,為什么?
23、抽象類(abstract class)和接口(interface)有什么異同?
24、靜態(tài)嵌套類(Static Nested Class)和內(nèi)部類(Inner Class)的不同?
25、Java 中會(huì)存在內(nèi)存泄漏嗎,請(qǐng)簡(jiǎn)單描述。
26、抽象的(abstract)方法是否可同時(shí)是靜態(tài)的(static),是否可同時(shí)是本地方法(native),是否可同時(shí)被synchronized修飾?
27、闡述靜態(tài)變量和實(shí)例變量的區(qū)別。
28、是否可以從一個(gè)靜態(tài)(static)方法內(nèi)部發(fā)出對(duì)非靜態(tài)(non-static)方法的調(diào)用?
29、如何實(shí)現(xiàn)對(duì)象克隆?
31、String s = new String("xyz");創(chuàng)建了幾個(gè)字符串對(duì)象?
32、接口是否可繼承(extends)接口?抽象類是否可實(shí)現(xiàn)(implements)接口?抽象類是否可繼承具體類(concrete class)?
33、一個(gè)".java"源文件中是否可以包含多個(gè)類(不是內(nèi)部類)?有什么限制?
34、Anonymous Inner Class(匿名內(nèi)部類)是否可以繼承其它類?是否可以實(shí)現(xiàn)接口?
35、內(nèi)部類可以引用它的包含類(外部類)的成員嗎?有沒(méi)有什么限制?
36、Java 中的final關(guān)鍵字有哪些用法?
38、數(shù)據(jù)類型之間的轉(zhuǎn)換:
39、如何實(shí)現(xiàn)字符串的反轉(zhuǎn)及替換?
40、怎樣將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串?
41、日期和時(shí)間:
42、打印昨天的當(dāng)前時(shí)刻。
43、比較一下Java和JavaSciprt。
44、什么時(shí)候用斷言(assert)?
45、Error和Exception有什么區(qū)別?
46、try{}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally{}里的代碼會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
47、Java語(yǔ)言如何進(jìn)行異常處理,關(guān)鍵字:throws、throw、try、catch、finally分別如何使用?
48、運(yùn)行時(shí)異常與受檢異常有何異同?
49、列出一些你常見(jiàn)的運(yùn)行時(shí)異常?
50、闡述final、finally、finalize的區(qū)別。
51、類ExampleA繼承Exception,類ExampleB繼承ExampleA。
請(qǐng)問(wèn)執(zhí)行此段代碼的輸出是什么?
52、List、Set、Map是否繼承自Collection接口?
53、闡述ArrayList、Vector、LinkedList的存儲(chǔ)性能和特性。
54、Collection和Collections的區(qū)別?
55、List、Map、Set三個(gè)接口存取元素時(shí),各有什么特點(diǎn)?
56、TreeMap和TreeSet在排序時(shí)如何比較元素?Collections工具類中的sort()方法如何比較元素?
57、Thread類的sleep()方法和對(duì)象的wait()方法都可以讓線程暫停執(zhí)行,它們有什么區(qū)別?
58、線程的sleep()方法和yield()方法有什么區(qū)別?
59、當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的synchronized方法A之后,其它線程是否可進(jìn)入此對(duì)象的synchronized方法B?
60、請(qǐng)說(shuō)出與線程同步以及線程調(diào)度相關(guān)的方法。
61、編寫多線程程序有幾種實(shí)現(xiàn)方式?
62、synchronized關(guān)鍵字的用法?
63、舉例說(shuō)明同步和異步。
64、啟動(dòng)一個(gè)線程是調(diào)用run()還是start()方法?
65、什么是線程池(thread pool)?
66、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系?
67、簡(jiǎn)述synchronized 和java.util.concurrent.locks.Lock的異同?
68、Java中如何實(shí)現(xiàn)序列化,有什么意義?
69、Java中有幾種類型的流?
70、寫一個(gè)方法,輸入一個(gè)文件名和一個(gè)字符串,統(tǒng)計(jì)這個(gè)字符串在這個(gè)文件中出現(xiàn)的次數(shù)。
71、如何用Java代碼列出一個(gè)目錄下所有的文件?
72、用Java的套接字編程實(shí)現(xiàn)一個(gè)多線程的回顯(echo)服務(wù)器。
73、XML文檔定義有幾種形式?它們之間有何本質(zhì)區(qū)別?解析XML文檔有哪幾種方式?
74、你在項(xiàng)目中哪些地方用到了XML?
75、闡述JDBC操作數(shù)據(jù)庫(kù)的步驟。
76、Statement和PreparedStatement有什么區(qū)別?哪個(gè)性能更好?
77、使用JDBC操作數(shù)據(jù)庫(kù)時(shí),如何提升讀取數(shù)據(jù)的性能?如何提升更新數(shù)據(jù)的性能?
78、在進(jìn)行數(shù)據(jù)庫(kù)編程時(shí),連接池有什么作用?
79、什么是DAO模式?
80、事務(wù)的ACID是指什么?
81、JDBC中如何進(jìn)行事務(wù)處理?
82、JDBC能否處理Blob和Clob?
83、簡(jiǎn)述正則表達(dá)式及其用途。
84、Java中是如何支持正則表達(dá)式操作的?
85、獲得一個(gè)類的類對(duì)象有哪些方式?
86、如何通過(guò)反射創(chuàng)建對(duì)象?
87、如何通過(guò)反射獲取和設(shè)置對(duì)象私有字段的值?
88、如何通過(guò)反射調(diào)用對(duì)象的方法?
89、簡(jiǎn)述一下面向?qū)ο蟮?quot;六原則一法則"。
90、簡(jiǎn)述一下你了解的設(shè)計(jì)模式。
91、用Java寫一個(gè)單例類。
92、什么是UML?
93、UML中有哪些常用的圖?
94、用Java寫一個(gè)冒泡排序。
95、用Java寫一個(gè)折半查找。
96、闡述Servlet和CGI的區(qū)別?
97、Servlet接口中有哪些方法?
98、轉(zhuǎn)發(fā)(forward)和重定向(redirect)的區(qū)別?
99、JSP有哪些內(nèi)置對(duì)象?作用分別是什么?
100、get和post請(qǐng)求的區(qū)別?
101、常用的Web服務(wù)器有哪些?
102、JSP和Servlet是什么關(guān)系?
103、講解JSP中的四種作用域。
104、如何實(shí)現(xiàn)JSP或Servlet的單線程模式?
105、實(shí)現(xiàn)會(huì)話跟蹤的技術(shù)有哪些?
106、過(guò)濾器有哪些作用和用法?
107、探聽(tīng)器有哪些作用和用法?
108、web.xml文件中可以配置哪些內(nèi)容?
109、你的項(xiàng)目中使用過(guò)哪些JSTL標(biāo)簽?
110、使用標(biāo)簽庫(kù)有什么好處?如何自定義JSP標(biāo)簽?
111、說(shuō)一下表達(dá)式語(yǔ)言(EL)的隱式對(duì)象及其作用。
112、表達(dá)式語(yǔ)言(EL)支持哪些運(yùn)算符?
113、Java Web開(kāi)發(fā)的Model 1和Model 2分別指的是什么?
114、Servlet 3中的異步處理指的是什么?
115、如何在基于Java的Web項(xiàng)目中實(shí)現(xiàn)文件上傳和下載?
116、服務(wù)器收到用戶提交的表單數(shù)據(jù),到底是調(diào)用Servlet的doGet()還是doPost()方法?
117、JSP中的靜態(tài)包含和動(dòng)態(tài)包含有什么區(qū)別?
118、Servlet中如何獲取用戶提交的查詢參數(shù)或表單數(shù)據(jù)?
119、Servlet中如何獲取用戶配置的初始化參數(shù)以及服務(wù)器上下文參數(shù)?
120、如何設(shè)置請(qǐng)求的編碼以及響應(yīng)內(nèi)容的類型?
121、解釋一下網(wǎng)絡(luò)應(yīng)用的模式及其特點(diǎn)。
122、什么是Web Service(Web服務(wù))?
123、概念解釋:SOAP、WSDL、UDDI。
124、Java規(guī)范中和Web Service相關(guān)的規(guī)范有哪些?
125、介紹一下你了解的Java領(lǐng)域的Web Service框架。
126、什么是ORM?
127、持久層設(shè)計(jì)要考慮的問(wèn)題有哪些?你用過(guò)的持久層框架有哪些?
128、Hibernate中SessionFactory是線程安全的嗎?Session是線程安全的嗎(兩個(gè)線程能夠共享同一個(gè)Session嗎)?
129、Hibernate中Session的load和get方法的區(qū)別是什么?
130、Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分別是做什么的?有什么區(qū)別?
131、闡述Session加載實(shí)體對(duì)象的過(guò)程。
132、Query接口的list方法和iterate方法有什么區(qū)別?
133、Hibernate如何實(shí)現(xiàn)分頁(yè)查詢?
134、鎖機(jī)制有什么用?簡(jiǎn)述Hibernate的悲觀鎖和樂(lè)觀鎖機(jī)制。
135、闡述實(shí)體對(duì)象的三種狀態(tài)以及轉(zhuǎn)換關(guān)系。
136、如何理解Hibernate的延遲加載機(jī)制?在實(shí)際應(yīng)用中,延遲加載與Session關(guān)閉的矛盾是如何處理的?
137、舉一個(gè)多對(duì)多關(guān)聯(lián)的例子,并說(shuō)明如何實(shí)現(xiàn)多對(duì)多關(guān)聯(lián)映射。
138、談一下你對(duì)繼承映射的理解。
139、簡(jiǎn)述Hibernate常見(jiàn)優(yōu)化策略。
140、談一談Hibernate的一級(jí)緩存、二級(jí)緩存和查詢緩存。
141、Hibernate中DetachedCriteria類是做什么的?
142、@OneToMany注解的mappedBy屬性有什么作用?
143、MyBatis中使用#和$書寫占位符有什么區(qū)別?
144、解釋一下MyBatis中命名空間(namespace)的作用。
145、MyBatis中的動(dòng)態(tài)SQL是什么意思?
146、什么是IoC和DI?DI是如何實(shí)現(xiàn)的?
147、Spring中Bean的作用域有哪些?
148、解釋一下什么叫AOP(面向切面編程)?
149、你是如何理解"橫切關(guān)注"這個(gè)概念的?
150、你如何理解AOP中的連接點(diǎn)(Joinpoint)、切點(diǎn)(Pointcut)、增強(qiáng)(Advice)、引介(Introduction)、織入(Weaving)、切面(Aspect)這些概念?
151、Spring中自動(dòng)裝配的方式有哪些?
152、Spring中如何使用注解來(lái)配置Bean?有哪些相關(guān)的注解?
153、Spring支持的事務(wù)管理類型有哪些?你在項(xiàng)目中使用哪種方式?
154、如何在Web項(xiàng)目中配置Spring的IoC容器?
155、如何在Web項(xiàng)目中配置Spring MVC?
156、Spring MVC的工作原理是怎樣的?
157、如何在Spring IoC容器中配置數(shù)據(jù)源?
158、如何配置配置事務(wù)增強(qiáng)?
159、選擇使用Spring框架的原因(Spring框架為企業(yè)級(jí)開(kāi)發(fā)帶來(lái)的好處有哪些)?
160、Spring IoC容器配置Bean的方式?
161、闡述Spring框架中Bean的生命周期?
162、依賴注入時(shí)如何注入集合屬性?
163、Spring中的自動(dòng)裝配有哪些限制?
164、在Web項(xiàng)目中如何獲得Spring的IoC容器?
165. 大型網(wǎng)站在架構(gòu)上應(yīng)當(dāng)考慮哪些問(wèn)題?
166、你用過(guò)的網(wǎng)站前端優(yōu)化的技術(shù)有哪些?
167、你使用過(guò)的應(yīng)用服務(wù)器優(yōu)化技術(shù)有哪些?
168、什么是XSS攻擊?什么是SQL注入攻擊?什么是CSRF攻擊?
169. 什么是領(lǐng)域模型(domain model)?貧血模型(anaemic domain model)和充血模型(rich domain model)有什么區(qū)別?
170. 談一談測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)的好處以及你的理解。
【170道經(jīng)久不衰的Java工程師面試題】相關(guān)文章:
Java工程師面試題(170道)07-13
Java程序員面試題集50道08-07
Java面試題(精選)06-30
java面試題05-20
java軟件工程師面試題有哪些07-13
高級(jí)Java面試題精選11-02
Java線程面試題08-25
Java 問(wèn)答面試題09-03