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