篇一:Java軟件開發(fā)工程師面試題寶典
1、了解j2EE規(guī)范,選擇幾點(diǎn)進(jìn)行重點(diǎn)消化。
2、異常分類,一般性異常和運(yùn)行期異常,異常捕獲。
3、了解spring mvc框架,和struts mvc框架的區(qū)別。
4、要對(duì)spring和ibatis非常熟悉,必須,熟知。
5、應(yīng)適當(dāng)關(guān)注需求分析和產(chǎn)品方面的知識(shí)。
6、了解多線程相關(guān)知識(shí)
7、了解java5以及java6新特性
8、熟悉linux相關(guān)命令操作。
9、工廠模式,簡(jiǎn)單工廠、抽象工廠的區(qū)別
10、動(dòng)態(tài)代理模式
一、String,StringBuffer, StringBuilder 的區(qū)別是什么?String為什么是不可變的?
二、VECTOR,ARRAYLIST, LINKEDLIST的區(qū)別是什么?
三、HASHTABLE, HASGMAQ,TreeMap區(qū)別
四、ConcurrentMap和HashMap的區(qū)別
五、Tomcat,apache,jboss的區(qū)別
六、GET POST區(qū)別
七、SESSION, COOKIE區(qū)別
八、Servlet的生命周期
九、HTTP 報(bào)文包含內(nèi)容
十、Statement與PreparedStatement的區(qū)別,什么是SQL注入,如何防止SQL注入 十一、redirect, foward區(qū)別
十二、關(guān)于JAVA內(nèi)存模型,一個(gè)對(duì)象(兩個(gè)屬性,四個(gè)方法)實(shí)例化100次,現(xiàn)在內(nèi)存中的存儲(chǔ)狀態(tài),
幾個(gè)對(duì)象,幾個(gè)屬性,幾個(gè)方法。
十三、談?wù)凥ibernate的理解,一級(jí)和二級(jí)緩存的作用,在項(xiàng)目中Hibernate都是怎么使用緩存的
十四、反射講一講,主要是概念,都在哪需要反射機(jī)制,反射的性能,如何優(yōu)化 十五、談?wù)凥ibernate與Ibatis的區(qū)別,哪個(gè)性能會(huì)更高一些
十六、對(duì)Spring的理解,項(xiàng)目中都用什么?怎么用的?對(duì)IOC、和AOP的理解及實(shí)現(xiàn)原理
十七、線程同步,并發(fā)操作怎么控制
十八、描述struts的工作流程。
十九、Tomcat的session處理,如果讓你實(shí)現(xiàn)一個(gè)tomcatserver,如何實(shí)現(xiàn)session機(jī)制
二十、關(guān)于Cache(Ehcache,Memcached)
二一、sql的優(yōu)化相關(guān)問題
二二、oracle中 rownum與rowid的理解,一千條記錄我查200到300的記錄怎么查? 二三、如何分析ORACLE的執(zhí)行計(jì)劃?
二四、 DB中索引原理,種類,使用索引的好處和問題是什么?
二五、JVM垃圾回收實(shí)現(xiàn)原理。垃圾回收的線程優(yōu)先級(jí)。
二六、jvm 最大內(nèi)存設(shè)置。設(shè)置的原理。結(jié)合垃圾回收講講。
Java面試寶典
一. Java基礎(chǔ)部分..................................................................................................................... 8
1、一個(gè)".java"源文件中是否可以包括多個(gè)類(不是內(nèi)部類)?有什么限制? ...... 9
2、Java有沒有g(shù)oto? ....................................................................................................... 9
3、說說&和&&的區(qū)別。 ............................................................................................... 9
4、在JAVA中如何跳出當(dāng)前的多重嵌套循環(huán)? .......................................................... 9
5、switch語句能否作用在byte上,能否作用在long上,能否作用在String上? 10
6、short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)? ..................... 10
7、char型變量中能不能存貯一個(gè)中文漢字?為什么? ................................................ 10
8、用最有效率的方法算出2乘以8等於幾? ............................................................. 10
9、請(qǐng)?jiān)O(shè)計(jì)一個(gè)一百億的計(jì)算器 ................................................................................... 11
10、使用final關(guān)鍵字修飾一個(gè)變量時(shí),是引用不能變,還是引用的對(duì)象不能變?
......................................................................................................................................... 12
11、"=="和equals方法究竟有什么區(qū)別? ................................................................. 12
12、靜態(tài)變量和實(shí)例變量的區(qū)別? ............................................................................. 13
13、是否可以從一個(gè)static方法內(nèi)部發(fā)出對(duì)非static方法的調(diào)用? ........................ 14
14、Integer與int的區(qū)別 .............................................................................................. 14
15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? ................................... 14
16、下面的代碼有什么不妥之處? ............................................................................... 14
17、請(qǐng)說出作用域public,private,protected,以及不寫時(shí)的區(qū)別 ........................ 15
18、Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
......................................................................................................................................... 15
19、構(gòu)造器Constructor是否可被override? ................................................................ 16
20、接口是否可繼承接口? 抽象類是否可實(shí)現(xiàn)(implements)接口? 抽象類是否可繼
承具體類(concrete class)? 抽象類中是否可以有靜態(tài)的main方法? ...................... 16
21、寫clone()方法時(shí),通常都有一行代碼,是什么? ............................................. 16
22、面向?qū)ο蟮奶卣饔心男┓矫?................................................................................. 16
23、java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么? ......................................................................... 18
24、abstract class和interface有什么區(qū)別? ................................................................. 18
25、abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是
synchronized? .................................................................................................................. 20
26、什么是內(nèi)部類?Static Nested Class 和 Inner Class的不同。 ........................... 20
27、內(nèi)部類可以引用它的包含類的成員嗎?有沒有什么限制? ............................. 22
28、Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可
以implements(實(shí)現(xiàn))interface(接口)? ............................................................................ 22
29、super.getClass()方法調(diào)用 .......................................................................... 23
30、String是最基本的數(shù)據(jù)類型嗎? ............................................................................ 23
31、String s = "Hello";s = s + " world!";這兩行代碼執(zhí)行后,原始的String對(duì)象中的
內(nèi)容到底變了沒有? ..................................................................................................... 23
32、是否可以繼承String類? ....................................................................................... 24
33、String s = new String("xyz");創(chuàng)建了幾個(gè)String Object? 二者之間有什么區(qū)別?
......................................................................................................................................... 24
34、String 和StringBuffer的區(qū)別 ............................................................................... 25
35、如何把一段逗號(hào)分割的字符串轉(zhuǎn)換成一個(gè)數(shù)組? ............................................... 25
36、數(shù)組有沒有l(wèi)ength()這個(gè)方法? String有沒有l(wèi)ength()這個(gè)方法? .................... 26
37、下面這條語句一共創(chuàng)建了多少個(gè)對(duì)象:String s="a"+"b"+"c"+"d"; .................. 26
38、try {}里有一個(gè)return語句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不
會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后? .................................................... 26
39、下面的程序代碼輸出的結(jié)果是多少? ................................................................. 27
40、final, finally, finalize的區(qū)別。 .............................................................................. 29
41、運(yùn)行時(shí)異常與一般異常有何異同? ..................................................................... 29
42、error和exception有什么區(qū)別? ............................................................................. 29
43、Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用。 ..................................................... 29
44、請(qǐng)寫出你最常見到的5個(gè)runtime exception。 ................................................... 30
45、JAVA語言如何進(jìn)行異常處理,關(guān)鍵字:throws,throw,try,catch,finally分別代表
什么意義?在try塊中可以拋出異常嗎? .................................................................. 30
46、java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?用什么關(guān)鍵字修飾同步方法? stop()和
suspend()方法為何不推薦使用? ................................................................................. 30
47、sleep() 和 wait() 有什么區(qū)別? ............................................................................. 31
48、同步和異步有何異同,在什么情況下分別使用他們?舉例說明。 ................. 34
49. 下面兩個(gè)方法同步嗎?(自己發(fā)明) .................................................................. 34
50、多線程有幾種實(shí)現(xiàn)方法?同步有幾種實(shí)現(xiàn)方法? ................................................. 34
51、啟動(dòng)一個(gè)線程是用run()還是start()? . .................................................................. 35
52、當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此
對(duì)象的其它方法? ........................................................................................................... 35
53、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系 ................................. 35
54、簡(jiǎn)述synchronized和java.util.concurrent.locks.Lock的異同 ? ........................ 36
55、設(shè)計(jì)4個(gè)線程,其中兩個(gè)線程每次對(duì)j增加1,另外兩個(gè)線程對(duì)j每次減少1。
寫出程序。 ..................................................................................................................... 38
56、子線程循環(huán)10次,接著主線程循環(huán)100,接著又回到子線程循環(huán)10次,接著
再回到主線程又循環(huán)100,如此循環(huán)50次,請(qǐng)寫出程序。 .................................... 40
57、介紹Collection框架的結(jié)構(gòu) .................................................................................. 45
58、Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)什么接口 ....................................................... 45
59、ArrayList和Vector的區(qū)別 .................................................................................... 45
60、HashMap和Hashtable的區(qū)別 .............................................................................. 46
61、List 和 Map 區(qū)別? ............................................................................................... 46
62、List, Set, Map是否繼承自Collection接口? ......................................................... 47
63、List、Map、Set三個(gè)接口,存取元素時(shí),各有什么特點(diǎn)? ............................. 47
64、說出ArrayList,Vector, LinkedList的存儲(chǔ)性能和特性 ......................................... 48
65、去掉一個(gè)Vector集合中重復(fù)的元素 .................................................................... 48
66、Collection 和 Collections的區(qū)別。 ..................................................................... 48
67、Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢? 是用==還是
equals()? 它們有何區(qū)別? .............................................................................................. 48
68、你所知道的集合類都有哪些?主要方法? ......................................................... 49
69、兩個(gè)對(duì)象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對(duì)不
對(duì)? ................................................................................................................................... 49
70、TreeSet里面放對(duì)象,如果同時(shí)放入了父類和子類的實(shí)例對(duì)象,那比較時(shí)使用的是父類的compareTo方法,還是使用的子類的compareTo方法,還是拋異常!
......................................................................................................................................... 50
71、說出一些常用的類,包,接口,請(qǐng)各舉5個(gè) ..................................................... 51
72、java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請(qǐng)
說出他們分別是哪些類? ............................................................................................. 51
73、字節(jié)流與字符流的區(qū)別 ......................................................................................... 51
74、什么是java序列化,如何實(shí)現(xiàn)java序列化?或者請(qǐng)解釋Serializable接口的作
用。 ................................................................................................................................. 53
75、描述一下JVM加載class文件的原理機(jī)制? ....................................................... 53
76、heap和stack有什么區(qū)別。 .................................................................................. 53
77、GC是什么? 為什么要有GC? .............................................................................. 54
78、垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制。 ............................................. 54
79、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法
主動(dòng)通知虛擬機(jī)進(jìn)行垃圾回收? ................................................................................. 54
80、什么時(shí)候用assert。 ............................................................................................... 54
81、java中會(huì)存在內(nèi)存泄漏嗎,請(qǐng)簡(jiǎn)單描述。 ......................................................... 55
82、能不能自己寫個(gè)類,也叫java.lang.String? ....................................................... 58
83. Java代碼查錯(cuò)................................................................................................................... 59
二. 算法與編程 ...................................................................................................................... 63
1、編寫一個(gè)程序,將a.txt文件中的單詞與b.txt文件中的單詞交替合并到c.txt文件中,a.txt文件中的單詞用回車符分隔,b.txt文件中用回車或空格進(jìn)行分隔。 . 63
2、編寫一個(gè)程序,將d:java目錄下的所有.java文件復(fù)制到d:jad目錄下,并將原
來文件的擴(kuò)展名從.java改為.jad。 .............................................................................. 64
3、編寫一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串,但要保證漢字不被截取半個(gè),如“我ABC”,4,應(yīng)該截取“我AB”,輸入“我ABC漢DEF”,6,應(yīng)該輸出“我ABC”,而不是“我ABC+漢的半個(gè)”。
......................................................................................................................................... 66
4、有一個(gè)字符串,其中包含中文字符、英文字符和數(shù)字字符,請(qǐng)統(tǒng)計(jì)和打印出各
個(gè)字符的個(gè)數(shù)。 ............................................................................................................. 67
5、說明生活中遇到的二叉樹,用java實(shí)現(xiàn)二叉樹 .................................................. 68
6、從類似如下的文本文件中讀取出所有的姓名,并打印出重復(fù)的姓名和重復(fù)的次
數(shù),并按重復(fù)次數(shù)排序: ............................................................................................. 73
7、寫一個(gè)Singleton出來。 ......................................................................................... 77
8、遞歸算法題1 ............................................................................................................ 79
9、遞歸算法題2 ............................................................................................................ 80
10、排序都有哪幾種方法?請(qǐng)列舉。用JAVA實(shí)現(xiàn)一個(gè)快速排序。 ...................... 81
11、有數(shù)組a[n],用java代碼將數(shù)組元素順序顛倒 ................................................. 82
12.金額轉(zhuǎn)換,阿拉伯?dāng)?shù)字的金額轉(zhuǎn)換成中國傳統(tǒng)的形式如:(¥1011)->(一千
零一拾一元整)輸出。 ................................................................................................. 83
三. html&JavaScript&ajax部分 ............................................................................................. 84
1. 判斷第二個(gè)日期比第一個(gè)日期大 ............................................................................ 84
2. 用table顯示n條記錄,每3行換一次顏色,即1,2,3用紅色字體,4,5,6
用綠色字體,7,8,9用紅顏色字體。 ...................................................................... 85
3、HTML 的 form 提交之前如何驗(yàn)證數(shù)值文本框的內(nèi)容全部為數(shù)字? 否則的話提
示用戶并終止提交? ....................................................................................................... 86
4、請(qǐng)寫出用于校驗(yàn)HTML文本框中輸入的內(nèi)容全部為數(shù)字的javascript代碼 .... 86
5、說說你用過那些ajax技術(shù)和框架,說說它們的區(qū)別 .......................................... 87
四. Java web部分 ................................................................................................................... 87
1、Tomcat的優(yōu)化經(jīng)驗(yàn) .................................................................................................. 87
2、HTTP請(qǐng)求的GET與POST方式的區(qū)別 .............................................................. 87
3、解釋一下什么是servlet; .......................................................................................... 87
4、說一說Servlet的生命周期? .................................................................................... 87
5、Servlet的基本架構(gòu) .................................................................................................. 88
6、SERVLET API中forward() 與redirect()的區(qū)別? ............................................... 88
7、什么情況下調(diào)用doGet()和doPost()? ................................................................... 88
8、Request對(duì)象的主要方法: ..................................................................................... 88
9、forward 和redirect的區(qū)別 ...................................................................................... 89
10、request.getAttribute() 和 request.getParameter() 有何區(qū)別?............................... 89
11. jsp有哪些內(nèi)置對(duì)象?作用分別是什么? 分別有什么方法? ................................ 89
12. jsp有哪些動(dòng)作?作用分別是什么? .......................................................................... 90
13、JSP的常用指令 ...................................................................................................... 90
14. JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別? ............................................. 91
15、兩種跳轉(zhuǎn)方式分別是什么?有什么區(qū)別? ............................................................. 91
16、頁面間對(duì)象傳遞的方法 ......................................................................................... 91
17、JSP和Servlet有哪些相同點(diǎn)和不同點(diǎn),他們之間的聯(lián)系是什么? ................. 91
18、MVC的各個(gè)部分都有那些技術(shù)來實(shí)現(xiàn)?如何實(shí)現(xiàn)? ........................................... 91
19、我們?cè)趙eb應(yīng)用開發(fā)過程中經(jīng)常遇到輸出某種編碼的字符,如iso8859-1等,
如何輸出一個(gè)某種編碼的字符串? ............................................................................. 92
20.現(xiàn)在輸入n個(gè)數(shù)字,以逗號(hào),分開;然后可選擇升或者降序排序;按提交鍵就
在另一頁面顯示按什么排序,結(jié)果為,提供reset .................................................... 92
五. 數(shù)據(jù)庫部分 ...................................................................................................................... 92
1、用兩種方式根據(jù)部門號(hào)從高到低,工資從低到高列出每個(gè)員工的信息。 ....... 92
2、列出各個(gè)部門中工資高于本部門的平均工資的員工數(shù)和部門號(hào),并按部門號(hào)排
序..................................................................................................................................... 93
3、存儲(chǔ)過程與觸發(fā)器必須講,經(jīng)常被面試到? ......................................................... 93
4、數(shù)據(jù)庫三范式是什么? ............................................................................................. 95
5、說出一些數(shù)據(jù)庫優(yōu)化方面的經(jīng)驗(yàn)? ......................................................................... 96
6、union和union all有什么不同? ............................................................................... 97
7.分頁語句 ...................................................................................................................... 98
8.用一條SQL語句 查詢出每門課都大于80分的學(xué)生姓名................................... 101
9.所有部門之間的比賽組合 ........................................................................................ 102
10.每個(gè)月份的發(fā)生額都比101科目多的科目 .......................................................... 102
11.統(tǒng)計(jì)每年每月的信息 .............................................................................................. 104
12.顯示文章標(biāo)題,發(fā)帖人、最后回復(fù)時(shí)間 .............................................................. 105
篇二:Java面試題—WEB開發(fā)必看
以前的收藏,估計(jì)很少有這么全的面試題集了^_^
基礎(chǔ)知識(shí):
1. C++或Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用。 當(dāng)JAVA程序違反了JAVA的語義規(guī)則時(shí),JAVA虛擬機(jī)就會(huì)將發(fā)生的錯(cuò)誤表示為一個(gè)異常。違反語義規(guī)則包括2種情況。一種是JAVA類庫內(nèi)置的語義檢查。例如數(shù)組下標(biāo)越界,會(huì)引發(fā)IndexOutOfBoundsException;訪問null的對(duì)象時(shí)會(huì)引發(fā)NullPointerException。另一種情況就是JAVA允許程序員擴(kuò)展這種語義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時(shí)用throw關(guān)鍵字引發(fā)異常。所有的異常都是java.lang.Thowable的子類。
2.Java的接口和C++的虛類的相同和不同處。
由于Java不支持多繼承,而有可能某個(gè)類或?qū)ο笠褂梅謩e在幾個(gè)類或?qū)ο罄锩娴姆椒ɑ驅(qū)傩裕F(xiàn)有的單繼承機(jī)制就不能滿足要求。與繼承相比,接口有更高的靈活性,因?yàn)榻涌谥袥]有任何實(shí)現(xiàn)代碼。當(dāng)一個(gè)類實(shí)現(xiàn)了接口以后,該類要實(shí)現(xiàn)接口里面所有的方法和屬性,并且接口里面的屬性在默認(rèn)狀態(tài)下面都是publicstatic,所有方法默認(rèn)情況下是public.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。
3.垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制。
Java語言中一個(gè)顯著的特點(diǎn)就是引入了垃圾回收機(jī)制,使c++程序員最頭疼的內(nèi)存管理的問題迎刃而解,它使得Java程序員在編寫程序的時(shí)候不再需要考慮內(nèi)存管理。由于有個(gè)垃圾回收機(jī)制,Java中的對(duì)象不再有“作用域”的概念,只有對(duì)象的引用才有“作用域”。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個(gè)單獨(dú)的低級(jí)別的線程運(yùn)行,不可預(yù)知的情況下對(duì)內(nèi)存堆中已經(jīng)死亡的或者長時(shí)間沒有使用的對(duì)象進(jìn)行清楚和回收,程序員不能實(shí)時(shí)的調(diào)用垃圾回收器對(duì)某個(gè)對(duì)象或所有對(duì)象進(jìn)行垃圾回收;厥諜C(jī)制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾回收。
4.請(qǐng)說出你所知道的線程同步的方法。
wait():使一個(gè)線程處于等待狀態(tài),并且釋放所持有的對(duì)象的lock。
sleep():使一個(gè)正在運(yùn)行的線程處于睡眠狀態(tài),是一個(gè)靜態(tài)方法,調(diào)用此方法要捕捉InterruptedException異常。
notify():喚醒一個(gè)處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時(shí)候,并不能確切的喚醒某一個(gè)等待狀態(tài)的線程,而是由JVM確定喚醒哪個(gè)線程,而且不是按優(yōu)先級(jí)。
Allnotity():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個(gè)對(duì)象的鎖,而是讓它們競(jìng)爭(zhēng)。
5.請(qǐng)講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用。
6.Error與Exception有什么區(qū)別?
Error表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常,
Exception表示需要捕捉或者需要程序進(jìn)行處理的異常。
7.在java中一個(gè)類被聲明為final類型,表示了什么意思?
表示該類不能被繼承,是頂級(jí)類。
8.描述一下你最常用的編程風(fēng)格。
9.heap和stack有什么區(qū)別。
棧是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。
堆是棧的一個(gè)組成元素
10.如果系統(tǒng)要使用超大整數(shù)(超過long長度范圍),請(qǐng)你設(shè)計(jì)一個(gè)數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)這種超大型數(shù)字以及設(shè)計(jì)一種算法來實(shí)現(xiàn)超大整數(shù)加法運(yùn)算)。
publicclassBigInt()
{
int[]ArrOne=newArrOne[1000];
StringintString="";
publicint[]Arr(Strings)
{
intString=s;
for(inti=0;i<ArrOne.leght;i++)
{
11.如果要設(shè)計(jì)一個(gè)圖形系統(tǒng),請(qǐng)你設(shè)計(jì)基本的圖形元件(Point,Line,Rectangle,Triangle)的簡(jiǎn)單實(shí)現(xiàn)
12,談?wù)刦inal,finally,finalize的區(qū)別。
final—修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個(gè)類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們?cè)谑褂弥胁槐桓淖。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。
finally—再異常處理時(shí)提供finally塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的catch子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入finally塊(如果有的話)。
finalize—方法名。Java技術(shù)允許使用finalize()方法在垃圾收集器將對(duì)象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在Object類中定義的,因此所有的類都繼承了它。子類覆蓋finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對(duì)象之前對(duì)這個(gè)對(duì)象調(diào)用的。
13,AnonymousInnerClass(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)?
匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承)其它類,但一個(gè)內(nèi)部類可以作為一個(gè)接口,由另一個(gè)內(nèi)部類實(shí)現(xiàn)。
14,StaticNestedClass和InnerClass的不同,說得越多越好(面試題有的很籠統(tǒng))。
NestedClass(一般是C++的說法),InnerClass(一般是JAVA的說法)。Java內(nèi)部類與C++嵌套類最大的不同就在于是否有指向外部的引用上。具體可見
http://www.frontfree.net/articles/services/view.asp?id=704&page=1
注:靜態(tài)內(nèi)部類(InnerClass)意味著1創(chuàng)建一個(gè)static內(nèi)部類的對(duì)象,不需要一個(gè)外部類對(duì)象,2不能從一個(gè)static內(nèi)部類的一個(gè)對(duì)象訪問一個(gè)外部類對(duì)象
第四,&和&&的區(qū)別。
&是位運(yùn)算符。&&是布爾邏輯運(yùn)算符。
15,HashMap和Hashtable的區(qū)別。
都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。
HashMap類沒有分類或者排序。它允許一個(gè)null鍵和多個(gè)null值。
Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,因?yàn)樗峭降摹?/p>
16,Collection和Collections的區(qū)別。
篇三:JAVA網(wǎng)站開發(fā)工程師面試題
JAVA_WEB開發(fā)人員面試題及答案
面試人: 面試時(shí)間:
一.選擇題(每題1分,共20分)
1. jsp 有幾個(gè)內(nèi)置對(duì)象?( c )(單選)
A 5個(gè) B 6個(gè) C 9個(gè) D 8個(gè)
2. 在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?( ab) (多選)
A break B return C forward D finally
3. 四種會(huì)話跟蹤技術(shù),哪個(gè)范圍最大?(d ) (單選)
A page B request C session D application
4. java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?(b ) (單選)
A 1種 B 2種 C 3種 D 4種
5. 同步有幾種實(shí)現(xiàn)方法 ( b) (單選)
A 4種 B 2種 C 3種 D 1種
6. xml有哪些解析技術(shù)? ( abcd ) (多選)
A DOM B SAX C STAX D JDOM
7. 下列說法正確的是( bd)(多選)
A 構(gòu)造器Constructor可被繼承
B String類不可以繼承
C 判斷兩個(gè)對(duì)象值相同用“==”
D char型變量中能不能存貯一個(gè)中文漢字
8. 下列關(guān)于線程說法正確的是(abc )(多選)
A 調(diào)用sleep不會(huì)釋放對(duì)象鎖。
B 調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖
C 當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程不可進(jìn)入此對(duì)象的其它 方法
D notify():喚醒全部處于等待狀態(tài)的線程。
9. 給定JSP程序源碼如下,該JSP運(yùn)行后輸出的結(jié)果是(b )。(單選)
<%int count="1;%">
Count:<%=>
A Count:1 B Count:2 C 1:2 D Count:
10.在J2EE中的一個(gè)JSP文件中,有表達(dá)式<%=2>,它將輸出( b )(單選)
a)2 3 b)5 c)23 d)不會(huì)輸出,因?yàn)楸磉_(dá)式是錯(cuò)誤的
11.在J2EE中,編寫Servlet過濾器時(shí),(c )接口用于調(diào)用過濾器鏈中的下一個(gè)過濾器。(單選)
a)Filter b)FilterConfig c)FilterChain d)Servlet
12) 關(guān)于視圖的描述正確的是( c ) (單選)
a) 視圖是一種特殊的表,它存儲(chǔ)了用戶定制的數(shù)據(jù)。
b) 視圖僅用于用戶進(jìn)行查詢,不可以通過視圖對(duì)數(shù)據(jù)進(jìn)行修改。
c) 在sql server中可以通過用T-sql語句來創(chuàng)建,也可以通過企業(yè)管理器。
d) 創(chuàng)建視圖只能操作本機(jī)器上的數(shù)據(jù)庫表。
13)STRUTS框架中,( c)類在視圖層和控制層之間傳遞HTML表單數(shù)據(jù)。(單選) a) Action b) ActionForward c) ActionForm d) ActionServlet
18)Struts控制器的主要任務(wù)是接受用戶請(qǐng)求、根據(jù)用戶請(qǐng)求調(diào)用對(duì)應(yīng)的模型組件、獲取業(yè)務(wù)邏輯執(zhí)行結(jié)果的根據(jù)處理結(jié)果選擇適合的視圖組件返回給用戶,實(shí)現(xiàn)Struts控制器的類中不包括(c )。(單選)
a) ActionServlet b) Action c) ActionForm d) ActionForward
14) 以下關(guān)于SessionFactory的說法哪些正確?( bc )(多選)
A) 對(duì)于每個(gè)數(shù)據(jù)庫事務(wù),應(yīng)該創(chuàng)建一個(gè)SessionFactory對(duì)象
B) 一個(gè)SessionFactory對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)庫存儲(chǔ)源。
C) SessionFactory是重量級(jí)的對(duì)象,不應(yīng)該隨意創(chuàng)建。如果系統(tǒng)中只有一個(gè)數(shù)據(jù)庫存儲(chǔ)源只需要?jiǎng)?chuàng)建一個(gè)。
D) SessionFactory的load()方法用于加載持久化對(duì)象
15) 下面那些是Hibernate的查詢方式(abc )(多選)
A) sql B) hql C) Criteria
18) 以下數(shù)據(jù)結(jié)構(gòu)不屬于線性結(jié)構(gòu)的是( c )(單選)
A) 隊(duì)列 B) 線性表 C) 二叉樹 D) 棧
16) 下列是文件讀寫的類是( ac )(多選)
A) File Reader B) File C) FileWriter D) InputStream
17) 數(shù)據(jù)庫技術(shù)中的“臟數(shù)據(jù)',是指(c )的數(shù)據(jù)。(單選)
A) 錯(cuò)誤 B 回返 C 未提交 D 未提交的隨后又被撤消
18)在計(jì)算機(jī)中,—個(gè)字節(jié)是由多少個(gè)二進(jìn)制位組成的( b) (單選)
A). 4 B). 8 C). 16 D). 24
19. 下列不屬于面向?qū)ο蟮姆椒ㄊ牵?d )(單選)
A). 對(duì)象 B). 類 C). 繼承 D).過程調(diào)用
29.設(shè)正x、y均為整型變量,且x=10 y=3,則以下語句printf("%d,%d ",x--,--y); 的輸出結(jié)果是( d )(單選)
A).10,3 B). 9,3 C). 9,2 D).10,2
二. 填空(每空1分,共10分)
1. String s = new String("xyz");創(chuàng)建了__2__個(gè)String 對(duì)象?
2. Math.round(9.5)等於__10___ Math.round(-9.5)等於__-9____
3. try {}里有一個(gè)return語句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return____前_____ ( 前還是后?)
4. 如何現(xiàn)實(shí)servlet的單線程模式 ______<%@ page="" isthreadsafe="false"> _________
5. 類變量必須帶的修飾符是 ______ static _________
6. final類可以修飾在屬性 , 方法 和 ___類___ 前面
7. Java默認(rèn)的包是______ java.lang.*_________
8. Hibernate里面怎樣實(shí)現(xiàn)類與類之間的關(guān)系__________表映射_______________
9. Socket 編程服務(wù)器端用____ serverSocket ____類來創(chuàng)建socket對(duì)象。
三. 判斷題(每題2分,共10分)
1. 依賴注入即是“面向接口”的編程。錯(cuò)
2. Overload和Override都是java多態(tài)的不同體現(xiàn)形式。對(duì)
3. String是最基本的數(shù)據(jù)類型。 錯(cuò)
4.啟動(dòng)一個(gè)線程是用start。 對(duì)
5. 接口可以繼承接口。 對(duì)
四.簡(jiǎn)答題(每題5分,共30分)
1、網(wǎng)頁設(shè)計(jì)采用div css有什么好處?
答:布局實(shí)現(xiàn)了表現(xiàn)與內(nèi)容的分離,大大縮減頁面代碼,符合W3C的標(biāo)準(zhǔn),兼容性更好;易于后期網(wǎng)站的更新、維護(hù);SEO的優(yōu)化:對(duì)搜索引擎更加友好,更容易被搜索引擎收錄。
2、前端頁面有哪三層構(gòu)成,分別是什么?作用是什么?
答:網(wǎng)頁分成三個(gè)層次,即:結(jié)構(gòu)層、表示層、行為層。
網(wǎng)頁的結(jié)構(gòu)層(structural layer)由HTML或 XHTML之類的標(biāo)記語言負(fù)責(zé)創(chuàng)建。標(biāo)簽,也就是那些出現(xiàn)在尖括號(hào)里的單詞,對(duì)網(wǎng)頁內(nèi)容的語義含義做出了描述,但這些標(biāo)簽不包含任何關(guān)于如何顯示有關(guān)內(nèi)容的信息。例如,P 標(biāo)簽表達(dá)了這樣一種語義:“這是一個(gè)文本段!
網(wǎng)頁的表示層(presentation layer)由CSS負(fù)責(zé)創(chuàng)建。CSS 對(duì)“如何顯示有關(guān)內(nèi)容”的問題做出了回答。
網(wǎng)頁的行為層(behavior layer)負(fù)責(zé)回答“內(nèi)容應(yīng)該如何對(duì)事件做出反應(yīng)”這一問題。這是 Javascript 語言和 DOM 主宰的領(lǐng)域。
3、如何區(qū)別display:none與visibility:hidden?
答:相同的是display:none與visibility:hidden都可以用來隱藏某個(gè)元素;
不同的是display:none在隱藏元素的時(shí)候,將其占位空間也去掉;而visibility:hidden只是隱藏了內(nèi)容而已,其占位空間仍然保留。
4. 購物網(wǎng)站的主色調(diào)應(yīng)該是什么樣色?交友網(wǎng)站?體育網(wǎng)站?軟件網(wǎng)站?年輕的互聯(lián)網(wǎng)? 答:購物:暖色;交友:粉紅之類的;體育:酷一點(diǎn);軟件公司:無所謂;年輕互聯(lián)網(wǎng):有朝氣的顏色,比如綠色。
5. 一個(gè)網(wǎng)站最多有幾種色彩
答:一到兩各種主色彩。
6.如果背景是黑色,那么字體用什么顏色能突出字體,且不顯得刺眼?
答:紅色。
五.編程操作題(每題6分,30分)
注:有上機(jī)機(jī)會(huì)上機(jī)操作,沒有就手動(dòng)把代碼寫出來;
1. 一個(gè)表td中的部分Id有多個(gè)記錄,把所有有多個(gè)記錄的id查出來,并顯示共有多少條 記錄數(shù)。
2.寫出冒泡排序的實(shí)現(xiàn)
答:代碼如下:
public void fun9(){
int[] a = {1,3,5,61,2,123,12,}
Conica.print(a);
for(int i=0 ; i<a.length-1 ; i ){
for(int j=0 ; j<a.length-i-1 ; j )
{
if(a[j]>a[j 1]){
int temp = a[j];
a[j] = a[j 1];
a[j 1] = temp;
}
}
}
}
3 編程:編寫一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。 但是要保證漢字不被截半個(gè),如“我ABC”4,應(yīng)該截為“我AB”,輸入“我ABC漢DEF”,應(yīng)該輸出為“我ABC”而不是“我ABC 漢的半個(gè)”。
答:代碼如下:
package test;
class SplitString {
String SplitStr;
int SplitByte;
public SplitString(String str,intbytes) {
SplitStr=str;
SplitByte=bytes;
System.out.println("TheString is:′" SplitStr "′;SplitBytes=" SplitByte);
}
public void SplitIt() {
int loopCount;
loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/SplitByte
1);
System.out.println("WillSplit into " loopCount);
for (int i=1;i<=loopCount ;i ) {
if (i==loopCount){
System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));
}
else {
System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));
}
}
}
public static void main(String[]args) {
SplitString ss = newSplitString("test中dd文dsaf中男大3443n中國43中國人
0ewldfls=103",4);
ss.SplitIt();
}
}
注:另外關(guān)于美工操作,如果有photoshop等軟件可以任選擇兩題考下:
1. 手寫 html 能力
描述一個(gè)不規(guī)則表格,一定要有跨列和跨行的,讓他把 html 代碼寫出來;
2.讓他用 Photoshop 或 Fireworks 設(shè)計(jì)一個(gè)頁面布局,或者指定一個(gè)效果(比如半透明的按鈕),讓他畫出來,在或者,提供一幅人物照片,要求他摳掉背景,這是平面軟件能力的一種體現(xiàn)方式;
3. 如果要涉及 Flash,讓他做一個(gè)兩種形狀(方形、圓圈)的漸變,要求過渡平滑、美觀,新手都直接用 shapemotion,很難看,高手知道加過渡。
篇四:JAVA開發(fā)工程師面試題
一、 概念題
1、 解釋什么是隊(duì)列(queue),什么棧(stack),有何區(qū)別?
隊(duì)列是一種特殊的線性表,他按照先進(jìn)先出的原則存儲(chǔ)數(shù)據(jù)。
棧是一種數(shù)據(jù)結(jié)構(gòu),它按照后進(jìn)先出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開始彈出數(shù)據(jù)。 2、 用C/C++或者Php,或Java,給出例子,解釋什么是異常(exception)?
3、 簡(jiǎn)述HashMap、HashSet、HashTable的區(qū)別。 Hashtable類
Hashtable繼承Map接口,實(shí)現(xiàn)一個(gè)key-value映射的哈希表。任何非空(non-null)的對(duì)象都可作為key或者value。 HashMap類
HashMap和Hashtable類似,不同之處在于HashMap是非同步的,并且允許null,即null value和null key,null key只能有一個(gè)。 HashSet類
HashSet繼承Set接口。
Set是一種不包含重復(fù)的元素的Collection。 4、public、protect和private的區(qū)別是什么?
二、 數(shù)據(jù)庫相關(guān)題
試設(shè)計(jì)一個(gè)商品相關(guān)數(shù)據(jù)庫,要求包括商品類別、商品的基本信息,并完成下面的三個(gè)查詢。
1、請(qǐng)寫出創(chuàng)建相關(guān)表的SQL語句。
2. 使用標(biāo)準(zhǔn)SQL,得到2008年1月份入庫的所有商品信息。 3. 使用標(biāo)準(zhǔn)SQL,得到“Toy”分類下的所有商品信息。
4. 使用標(biāo)準(zhǔn)SQL,統(tǒng)計(jì)出所有包含商品價(jià)格低于100.00的分類。
三、 程序填空題。
閱讀下列說明、圖以及Java程序,將應(yīng)填入__(n)__處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。 1、[說明]
某訂單管理系統(tǒng)的部分UML類圖如圖1-1所示
圖4-1 訂單管理系統(tǒng)的部分類圖
圖1-1中,Product表示產(chǎn) 品,ProductList表示所銷售產(chǎn)品的列表,Order表示產(chǎn)品訂單,0rderltem表示產(chǎn)品訂單中的一個(gè)條目,OrderList表示訂單列 表,SalesSystem提供訂單管理系統(tǒng)的操作接口。各個(gè)類的部分屬性和方法說明如表1-1所示。 表1-1
可以使用類java.util。ArrayList來實(shí)現(xiàn)對(duì)象的聚集關(guān)系,如圖4-1中OrderList與Order之間的聚集關(guān)系。for-each循環(huán)提供了一種遍歷對(duì)象集合的簡(jiǎn)單方法。在for-each循環(huán)中,可以指定需要遍歷的對(duì)象集合以及用來接收集合中每個(gè)元素的變量,其語法如下: for(用來接收集合中元素的變量:需要遍歷的對(duì)象集合),如果要使用for-each循環(huán)來遍歷對(duì)象集合,那么包含該對(duì)象集合的類必須實(shí)現(xiàn)接口java.util.Iterable。Java程序1-1和Java程序1-2分別給出了類OrderList和方法statistic的Java代碼。 [Java程序1-1] import java.util.*;
public class OrderList __(1)__ {
private ArrayListorders; public OrderListO {
this.orders = new ArrayList(Order) 0; }
public void addOrder(Order order) { this.orders, add (order); }
public IteratoriteratorO {
return __(2)__;
}
public int getNunberOfOrders() { return this.orders. size(); }
}
[Java程序1-2]
import java.util.*;
public class SalesSystem { private ProductList catalog; private OrderList sales;
private static PrintWriter stdOut = new PrintWriter(System.out,true); public void statistic(){
for(Product product : __(3)__{ int number = 0;
for(Order order : __(4)__ {
for(__(5)__ : order){
if<product.equals(item.getProduct())) numbe r += item.getQuantity(); } }
stdOut.println(product.getCode() + " " + product.getDescription() + " "
+ number + " " + number *product.getPrice()); }
}
//其余的方法未列出 }
2、[說明]
傳輸門是傳輸系統(tǒng)中的重要裝置。傳輸門具有 Open(打開)、Closed(關(guān)閉)、Opening(正在打開)、StayOpen(保持打開)、Closing(正在關(guān)閉)五種狀態(tài)。觸發(fā)狀態(tài)的轉(zhuǎn)換事件有 click、complete 和 timeout 三種。事件與其相應(yīng)的狀態(tài)轉(zhuǎn)換如圖 2-1 所示。
圖 2-1 傳輸門響應(yīng)事件與其狀態(tài)轉(zhuǎn)換圖
下面的[Java 代碼 1]與[Java 代碼 2]分別用兩種不同的設(shè)計(jì)思路對(duì)傳輸門進(jìn)行狀態(tài)模擬,請(qǐng)?zhí)钛a(bǔ)代碼中的空缺。 [Java 代碼 1]
public class Door {
public static final int CLOSED = 1; public static final int OPENING = 2; public static final int OPEN = 3; public static final int CLOSING = 4; public static final int STAYOPEN = 5;
private int state = CLOSED;//定義狀態(tài)變量,用不同的整數(shù)表示不同狀態(tài) private void setState(int state){this.state = state;} //設(shè)置傳輸門當(dāng)前狀態(tài)
public void getState(){
// 此處代碼省略,本方法輸出狀態(tài)字符串,
// 例如,當(dāng)前狀態(tài)為 CLOSED 時(shí),輸出字符串為”CLOSED” }
public void click() { //發(fā)生 click 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換 if ( (1) ) setState(OPENING);
else if ( (2) ) setState(CLOSING); else if ( (3) ) setState(STAYOPEN); //發(fā)生 timeout 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換
public void timeout(){ if (state == OPEN) setState(CLOSING); } public void complete(){ //發(fā)生 complete 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換 if (state == OPENING) setState(OPEN);
else if (state == CLOSING) setState(CLOSED); }
public static void main(String [] args){ Door aDoor = new Door(); aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.complete(); aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.click(); aDoor.getState(); return; } }
[Java 代碼 2]
public class Door {
public final DoorState CLOSED = new DoorClosed(this); public final DoorState OPENING = new DoorOpening(this); public final DoorState OPEN = new DoorOpen(this);
public final DoorState CLOSING = new DoorClosing(this); public final DoorState STAYOPEN = new DoorStayOpen(this); private DoorState state = CLOSED; //設(shè)置傳輸門當(dāng)前狀態(tài)
public void setState(DoorState state){ this.state = state;} public void getState(){ //根據(jù)當(dāng)前狀態(tài)輸出對(duì)應(yīng)的狀態(tài)字符串 System.out.println(state.getClass().getName()); }
public void click(){ (4) ;} //發(fā)生 click 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換 public void timeout(){ (5) ;}//發(fā)生 timeout 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換 public void complete(){ (6) ;}//發(fā)生 complete 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換 public static void main(String[] args){ Door aDoor = new Door(); aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.complete(); aDoor.getState(); aDoor.timeout(); aDoor.getState(); return; } }
篇五:java_web開發(fā)人員面試題及答案
java 面試題
一.選擇題(每題1分)
1. jsp 有幾個(gè)內(nèi)置對(duì)象?()(單選)
A 5個(gè) B 6個(gè)C9個(gè) D 8個(gè) 2.在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?()(多選)
A break Breturn C forward D finally
3. 四種會(huì)話跟蹤技術(shù),哪個(gè)范圍最大?()(單選)
A page B request C session Dapplication
4. java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?()(單選)
A 1種B 2種 C 3種 D 4種
5. 同步有幾種實(shí)現(xiàn)方法()(單選)
A 4種B 2種 C 3種 D 1種 6. xml有哪些解析技術(shù)?()(多選)
ADOMBSAXCSTAXD JDOM
7. 下列說法正確的是()(多選) A 構(gòu)造器Constructor可被繼承
BString類不可以繼承 C 判斷兩個(gè)對(duì)象值相同用“==”
Dchar型變量中能存貯一個(gè)中文漢字
8.下面說法錯(cuò)誤的是()(單選)
A Vector是線程安全的
Bfloat f=3.4是正確的
C StringBuffer的長度是可變的
D StringBuffer的長度是不可變的 9. 下列關(guān)于集合的說法正確的是()(多選)
AList 的具體實(shí)現(xiàn)包括 ArrayList 和 Vector
BMap 集合類用于存儲(chǔ)元素對(duì)(稱作"鍵"和"值"),其中每個(gè)鍵映射到一個(gè)值
C Set的元素是有序的
DHashtable是線程安全的。 10. 下列關(guān)于線程說法正確的是()(多選)
A調(diào)用sleep不會(huì)釋放對(duì)象鎖。
B調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖
C當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程不可進(jìn)入此對(duì)象的其它方法
D notify():喚醒全部處于等待狀態(tài)的線程。
11. 給定JSP程序源碼如下,該JSP運(yùn)行后輸出的結(jié)果是()。(單選)
<%int count="1;%">
Count:<%=++count%>
A Count:1BCount:2 C1:2 D Count:
12在J2EE中的一個(gè)JSP文件中,有表達(dá)式<%=2+3%>,它將輸出()(單選)
a)2+3b)5c)23d)不會(huì)輸出,因?yàn)楸磉_(dá)式是錯(cuò)誤的
13 在J2EE中,JSTL提供條件標(biāo)簽以支持JSP頁面的各種條件,其中()類似于Java語言的switch語句。(單選)
a)b)c)d)
14. 在進(jìn)行Java Web開發(fā)時(shí),假定一個(gè)變量保存在session中,要獲得這個(gè)變量的值,可以使用以下()語句。(單選)
a)application.getAttribute(“name”) b)pageContext.getAttribute(“name”)
c)session.getAttribute(“name”)
d)config.getInitParameter(“name”)
15)在J2EE中,編寫Servlet過濾器時(shí),()接口用于調(diào)用過濾器鏈中的下一個(gè)過濾器。()(單選)
a)Filterb)FilterConfigc)FilterChaind)Servlet
16) 關(guān)于視圖的描述正確的是() (單選)
a) 視圖是一種特殊的表,它存儲(chǔ)了用戶定制的數(shù)據(jù)。
b) 視圖僅用于用戶進(jìn)行查詢,不可以通過視圖對(duì)數(shù)據(jù)進(jìn)行修改。
c) 在sql server中可以通過用T-sql語句來創(chuàng)建,也可以通過企業(yè)管理器。
d) 創(chuàng)建視圖只能操作本機(jī)器上的數(shù)據(jù)庫表。
17)STRUTS框架中,()類在視圖層和控制層之間傳遞HTML表單數(shù)據(jù)。(單選) a) Action b) ActionForwardc) ActionFormd) ActionServlet
18)Struts控制器的主要任務(wù)是接受用戶請(qǐng)求、根據(jù)用戶請(qǐng)求調(diào)用對(duì)應(yīng)的模型組件、獲取業(yè)務(wù)邏輯執(zhí)行結(jié)果的根據(jù)處理結(jié)果選擇適合的視圖組件返回給用戶,實(shí)現(xiàn)Struts控制器的類中不包括()。(單選) a)ActionServletb)Actionc) ActionFormd)ActionForward
19)在OOD中,類和接口之間的關(guān)系稱之為()。(單選)
a) 泛化b)實(shí)現(xiàn)c) 關(guān)聯(lián)d) 繼承
20) 以下關(guān)于SessionFactory的說法哪些正確?()(多選)
A) 對(duì)于每個(gè)數(shù)據(jù)庫事務(wù),應(yīng)該創(chuàng)建一個(gè)SessionFactory對(duì)象
B) 一個(gè)SessionFactory對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)庫存儲(chǔ)源。
C) SessionFactory是重量級(jí)的對(duì)象,不應(yīng)該隨意創(chuàng)建。如果系統(tǒng)中只有一個(gè)數(shù)據(jù)庫存儲(chǔ)源只需要?jiǎng)?chuàng)建一個(gè)。
D) SessionFactory的load()方法用于加載持久化對(duì)象
21) 關(guān)于AOP錯(cuò)誤的()(單選)
A)AOP將散落在系統(tǒng)中的“方面”代碼集中實(shí)現(xiàn)
B)AOP有助于提高系統(tǒng)可維護(hù)性
C)AOP已經(jīng)表現(xiàn)出將要替代面向?qū)ο蟮内厔?shì) D)AOP是一種設(shè)計(jì)模式,Spring提供了一種實(shí)現(xiàn)
22) 依賴注入說法正確的(單選)
A)依賴注入的目標(biāo)是在代碼之外管理程序組建間的依賴關(guān)系
B)依賴注入即是“面向接口”的編程
C)依賴注入是面向?qū)ο蠹夹g(shù)的替代品
D)依賴注入的使用會(huì)增大程序的規(guī)模
23)以下哪些屬于Session的方法?()(多選)
A)load()
B)save()
C)()
D)update()
E)open()
F)close() 24) 下面那些是Hibernate的查詢方式()(多選)
A) sql B) hql C)Criteria
25) 以下數(shù)據(jù)結(jié)構(gòu)不屬于線性結(jié)構(gòu)的是()(單選)
A) 隊(duì)列 B) 線性表C)二叉樹 D) 棧
26)下列是文件讀寫的類是()(多選)
A)File Reader B) File C)FileWriter D) InputStream
27)數(shù)據(jù)庫技術(shù)中的“臟數(shù)據(jù)',是指()的數(shù)據(jù)。(單選)
A) 錯(cuò)誤B回返C未提交D未提交的隨后又被撤消
28)在計(jì)算機(jī)中,—個(gè)字節(jié)是由多少個(gè)二進(jìn)制位組成的() (單選)
A). 4 B). 8 C).16 D). 24
29)設(shè)正x、y均為整型變量,且x=10 y=3,則以下語句printf("%d,%d ",x--,--y); 的輸出結(jié)果是()(單選) A).10,3 B). 9,3 C). 9,2 D).10,2
30) 下列不屬于面向?qū)ο蟮姆椒ㄊ牵ǎ▎芜x)
A).對(duì)象 B). 類 C). 繼承 D).過程調(diào)用
二. 填空(每空1分) 1. String s = new String("xyz");創(chuàng)建了____2_個(gè)String 對(duì)象?
2. Math.round(9.5)等於____10_ Math.round(-9.5)等於______ -9
3. try {}里有一個(gè)return語句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return_________ ( 前還是后?)
4. 如何現(xiàn)實(shí)servlet的單線程模式<%@ page="" isthreadsafe="false">
5. 類變量必須帶的修飾符是 _________static____
6. final類可以修飾在屬性 , 方法 和 ______類_ 前面
7. Java默認(rèn)的包是________________java.lang.* ___
8.Hibernate里面怎樣實(shí)現(xiàn)類與類之間的關(guān)系___________________________表映射_______
9. Socket 編程服務(wù)器端用___________serverSocket_類來創(chuàng)建socket對(duì)象
三. 判斷題(每題2分)
1. 依賴注入即是“面向接口”的編程。錯(cuò)
2. Overload和Override都是java多態(tài)的不同體現(xiàn)形式。對(duì)
3. String是最基本的數(shù)據(jù)類型錯(cuò)
4. 啟動(dòng)一個(gè)線程是用start()對(duì)
5. 接口可以繼承接口對(duì)
四.簡(jiǎn)答題(每題4分)
1.下列程序打印結(jié)果是
int[] arr = {1,3,3,2,8};
String str = “”;
int i=0;
publicvoid doIt(){
for(;i<arr.length;){
if(arr[i]>arr[i+1]){
str=arr[i]+arr[i+1]+str;
break;
} elseif(arr[i]<arr[i+1]){
str=arr[i]+str+arr[i+1];
i++;
continue;
} else{
str+=arr[i];
i++;
}
}
System.out.println(i);
System.out.println(str);
}
i=2;str=5133
2. 將會(huì)打印出什么? package test; public class FatherClass
public FatherClass()
{ System.out.println("FatherClass Create"); }
類:package test;import test.FatherClass;
public class ChildClass extends FatherClass public ChildClass() { System.out.println("ChildClass Create"); }
public static void main(String[] args) { FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass(); }}
輸出結(jié)果:
fatherClass Create
fatherClass Create
hildClass Create
3.下列程序?qū)是錯(cuò),如果錯(cuò)請(qǐng)說明原因!
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
abstract method必須以分號(hào)結(jié)尾,且不帶花括號(hào)
4. 表:table1(FId,Fclass,Fscore),用最高效最簡(jiǎn)單的SQL列出各班成績(jī)最高的列表,顯示班級(jí),成績(jī)兩個(gè)字段。
select fclass,max(fscore) from table1 group by fclass,fid
5. 下面程序運(yùn)行結(jié)果是
String[] arr1 ={”a”,”b”,”1″,”c”,”b”};
List lst1 = new ArrayList();
lst1.add(”d”);
Collections.addAll(lst1,arr1);
System.out.println(lst1);
Setset1 = new HashSet();
set1.add(”d”);
Collections.addAll(set1, arr1);
System.out.println(set1);
運(yùn)行結(jié)果:
d, a, b, 1, c, b
1.java前端開發(fā)面試題
2.公司JAVA開發(fā)面試題
3.2016年Java開發(fā)崗位面試題
4.2015年Java開發(fā)崗位面試題歸類
5.2014Java數(shù)據(jù)庫開發(fā)工程師面試問題
6.16年Java開發(fā)崗位面試題匯總
7.2016全年Java開發(fā)崗位面試題匯總
8.Java軟件開發(fā)工程師實(shí)習(xí)求職常見面試題
9.java學(xué)習(xí):Java面試題和答案
10.java面試試題