Java面試題
在現(xiàn)實的學習、工作中,我們總免不了要接觸或使用試題,試題是學;蚋髦鬓k方考核某種知識才能的標準。那么你知道什么樣的試題才能有效幫助到我們嗎?下面是小編收集整理的Java面試題,歡迎閱讀,希望大家能夠喜歡。
Java面試題 1
1、Collection 和 Collections的區(qū)別?
Collection是集合的根接口,其下有set及l(fā)ist
Collections是集合的算法。
2、Set里的元素是不能重復的,那么用什么方法來區(qū)分重復與否呢? 是用==還是equals()? 它們有何區(qū)別?用contains來區(qū)分是否有重復的對象。還是都不用?
在比較時先調用hashCode方法,如果不相同,證明不相等。
如果相同,再調用equals方法,如果equals方法相同,證明相等,不相同,證明不相等。
==:主要用在基本數(shù)據類型及引用
equals:主要是對象或對象引用的比較。
集合中是否包含某一個元素用contains來判斷。
3、List,Set,Map是否繼承自Collection接口?
List,set繼承于Collection
Map沒有繼承于Collection,其相對是獨立的。
屬于Collection類型的對象,可以通過構造函數(shù)將一個集合構造成另外一個集合。
4、面向對象的特征有哪些方面?
1.抽象:
找共性,將共有的屬性、方法放到父類中
2.繼承:
子類繼承于父類,具有父類的所有屬性與方法,可以重用,也可以覆蓋。
3.封裝:
一個類包括多個屬性及方法。
4. 多態(tài)性:
5、String是最基本的數(shù)據類型嗎?
基本數(shù)據類型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節(jié)省空間,我們應該用StringBuffer類
6、int 和 Integer 有什么區(qū)別?
int 是基本數(shù)據類型,不是對象,占一個內存空間,沒有方法。與其同類的`有l(wèi)ong,char,doble
Integer是封裝類,具有方法及屬性。與其同類的有Long,Double.Float
7、運行時異常與一般異常有何異同?
運行時異常:JVM拋出的異常,代碼中不用處理。
一般異常:用戶拋出的異常,如果用throws 聲明了,調用這個方法的代碼必須對其處理。
8、&和&&的區(qū)別?
&:與: 左邊若為false右邊還執(zhí)行。
&&:短路與,左邊若為false右邊不執(zhí)行。
9、final,finally,finalize的區(qū)別?
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執(zhí)行。
finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。
10、heap和stack有什么區(qū)別?
棧是一種線形集合,其添加和刪除元素的操作應在同一段完成。棧按照后進先出的方式進行處理。堆是棧的一個組成元素
11、Static Nested Class 和 Inner Class的不同?
Static Nested Class是被聲明為靜態(tài)(static)的內部類,它可以不依賴于外部類實例被實例化。而通常的內部類需要在外部類實例化后才能實例化。
12、GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯誤的內存回收會導致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動監(jiān)測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供釋放已分配內存的顯示操作方法。
13、short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?
short s1 = 1; s1 = s1 + 1; (s1+1運算結果是int型,需要強制轉換類型)
short s1 = 1; s1 += 1;(可以正確編譯)
14、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加1/2后求其floor.
15、Java有沒有goto?
java中的保留字,現(xiàn)在沒有在java中使用。
16、給出一個你最常見到的runtime exception ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException
一般異常:
IOException
FileNotFoundException
SqlException
17、數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法?
數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength這個屬性
String有l(wèi)ength()這個方法.
18、構造器Constructor是否可被override?
構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
19、是否可以繼承String類?
String類是final類故不可以繼承。
20、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個整數(shù)表達式。因此傳遞給 switch 和 case 語句的參數(shù)應該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
21、try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?
會執(zhí)行,在return前執(zhí)行。
22、兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
不對,有相同的 hash code
這是java語言的定義:
1) 對象相等則hashCode一定相等;
2) hashCode相等對象未必相等
23、四種會話跟蹤技術?
Cookie
Session
Hidden
url 重寫
24、寫一個Singleton出來。
Singleton模式主要作用是保證在Java應用程序中,一個類只有一個實例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個類,它的構造函數(shù)為private的,它有一個static的private的該類變量,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private 只供內部調用
private static Singleton instance = new Singleton();
//這里提供了一個供外部訪問本class的靜態(tài)方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
//使用時生成實例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定義一個類,它的構造函數(shù)為private的,所有方法為static的。
一般認為第一種形式要更加安全些
25、Java中的異常處理機制的簡單原理和應用。
原理: 有錯直接轉到異常處理部分或向上拋出。
應用:JAVA的異常就是錯誤,有兩種,一種是運行時,編碼可以不用捕捉。一種是一般異常,如果throws聲明了,必須進行處理。
26、描述一下JVM加載class文件的原理機制?
JVM中類的裝載是由ClassLoader和它的子類來實現(xiàn)的,Java ClassLoader 是一個重要的Java運行時系統(tǒng)組件。它負責在運行時查找和裝入類文件的類。
Java面試題 2
1)Java 中能創(chuàng)建 Volatile 數(shù)組嗎?
能,Java 中可以創(chuàng)建 volatile 類型數(shù)組,不過只是一個指向數(shù)組的引用,而不是整個數(shù)組。我的意思是,如果改變引用指向的數(shù)組,將會受到 volatile 的保護,但是如果多個線程同時改變數(shù)組的元素,volatile 標示符就不能起到之前的保護作用了。
2)volatile 能使得一個非原子操作變成原子操作嗎?
一個典型的例子是在類中有一個 long 類型的成員變量。如果你知道該成員變量會被多個線程訪問,如計數(shù)器、價格等,你最好是將其設置為 volatile。為什么?因為 Java 中讀取 long 類型變量不是原子的,需要分成兩步,如果一個線程正在修改該 long 變量的值,另一個線程可能只能看到該值的一半(前 32 位)。但是對一個 volatile 型的 long 或 double 變量的'讀寫是原子。
3)volatile 修飾符的有過什么實踐?
一種實踐是用 volatile 修飾 long 和 double 變量,使其能按原子類型來讀寫。double 和 long 都是64位寬,因此對這兩種類型的讀是分為兩部分的,第一次讀取第一個 32 位,然后再讀剩下的 32 位,這個過程不是原子的,但 Java 中 volatile 型的 long 或 double 變量的讀寫是原子的。volatile 修復符的另一個作用是提供內存屏障(memory barrier),例如在分布式框架中的應用。簡單的說,就是當你寫一個 volatile 變量之前,Java 內存模型會插入一個寫屏障(write barrier),讀一個 volatile 變量之前,會插入一個讀屏障(read barrier)。意思就是說,在你寫一個 volatile 域時,能保證任何線程都能看到你寫的值,同時,在寫之前,也能保證任何數(shù)值的更新對所有線程是可見的,因為內存屏障會將其他所有寫的值更新到緩存。
4)volatile 類型變量提供什么保證?(答案)
volatile 變量提供順序和可見性保證,例如,JVM 或者 JIT為了獲得更好的性能會對語句重排序,但是 volatile 類型變量即使在沒有同步塊的情況下賦值也不會與其他語句重排序。 volatile 提供 happens-before 的保證,確保一個線程的修改能對其他線程是可見的。某些情況下,volatile 還能提供原子性,如讀 64 位數(shù)據類型,像 long 和 double 都不是原子的,但 volatile 類型的 double 和 long 就是原子的。
5) 10 個線程和 2 個線程的同步代碼,哪個更容易寫?
從寫代碼的角度來說,兩者的復雜度是相同的,因為同步代碼與線程數(shù)量是相互獨立的。但是同步策略的選擇依賴于線程的數(shù)量,因為越多的線程意味著更大的競爭,所以你需要利用同步技術,如鎖分離,這要求更復雜的代碼和專業(yè)知識。
6)你是如何調用 wait()方法的?使用 if 塊還是循環(huán)?為什么?(答案)
wait() 方法應該在循環(huán)調用,因為當線程獲取到 CPU 開始執(zhí)行的時候,其他條件可能還沒有滿足,所以在處理前,循環(huán)檢測條件是否滿足會更好。下面是一段標準的使用 wait 和 notify 方法的代碼:
// The standard idiom for using the wait method
參見 Effective Java 第 69 條,獲取更多關于為什么應該在循環(huán)中來調用 wait 方法的內容。
Java面試題 3
1). applet的運行過程要經歷4個步驟,其中哪個不是運行步驟?
A.瀏覽器加載指定URL中的HTML文件
B.瀏覽器顯示HTML文件
C.瀏覽器加載HTML文件中指定的applet類
D.瀏覽器中的Java運行環(huán)境運行該applet
正確答案:B
2). 二維數(shù)組A[O,…,8][0,…,9],其每個元素占2字節(jié)。從首地址400開始,按行優(yōu)先順序存儲,則元素A[8][5]的存儲地址為( )。
A.570
B.506
C.410
D.482
正確答案:A
答案解析:A[8][5]元素存儲的位置在第9行第6列,所以A[8][5]之前存儲的個數(shù)應為8×10+5 = 85,這些元素占用的空間為85×2字節(jié)=170字節(jié),所以A[8][5]的存儲位置為400+170= 570。
3). 用于生產過程控制的系統(tǒng),一般都是( ),它要求有對輸入數(shù)據及時做出響應的能力。
A.批處理系統(tǒng)
B.分時系統(tǒng)
C.實時系統(tǒng)
D.及時系統(tǒng)
正確答案:C
答案解析:用于生產過程控制的系統(tǒng),一般都是實時系統(tǒng),它要求有對輸入數(shù)據及時做出反應(響應)的能力。由于環(huán)境和控制對象以及工作任務的不同,控制系統(tǒng)對計算機系統(tǒng)的要求也會不同,一般會對計算機系統(tǒng)的可靠性、封閉性、抗干擾性等指標提出要求。
4). Java語言的許多特點中,下列哪個特點是C++語言所不具備的?
A.高性能
B.跨平臺
C.面向對象
D.有類庫
正確答案:B
5). 在匹配器(Matcher)類中,用于尋找下一個模式匹配串的方法是( )。
A.static boolean matches()
B.boolean matcher .fi nd()
C.i nt matcher .start()
D.i nt matcher .end()
正確答案:A
答案解析:本題考查考生對Java 中的匹配器(Matcher)類的理解。Matcher 類用于將一個輸入字符串i nput 和模式串pattern 相比較。Boolean matcher .fi nd()方法用于尋找下一個模式匹配串;i nt matcher .start()方法用于返回匹配串的一個起始索引整數(shù)值;i nt matcher .end()方法用于返回匹配串的一個終止索引整數(shù)值。而用于輸入字符串與模式串比較的方法是static boolean matches(),選項A 正確。
6). J2EE和( )語言綁定。
A.C
B.C++
C.Java
D.匯編語言
正確答案:C
答案解析:J2EE的基礎是J2SE,以Java為平臺;而C語言用于ODBCAPI。由于兩者不兼容,SUN公司才提出了JDBC作為Java幾個平臺與麴據庫的標準連接。
7). 下列關于結構化設計原則的'描述,錯誤的是
A.在塊和進程的非正常出口處往往需要調用GOTO語句,使用GOTO語句使程序執(zhí)行效率提高,但是濫用GOTO語句確實有害,應該避免使用GOTO語句。
B.程序設計時應該自頂向下,逐步求精。
C.程序設計時,應該將復雜問題進行模塊化,就是將程序設計的總目標分解為若干個分目標,再進一步分解為具體的小目標。
D.在進行程序設計時,應該盡量在一行書寫一條語句,盡量做到效率第一,清晰第二。
正確答案:D
8). 如果線程調用下列方法,不能保證使該線程停止運行的是( )。
A.sleep()
B.stop()
C.yield()
D.wait()
正確答案:C
答案解析:線程的方法中sleep()方法的作用是使比當前線程優(yōu)先級低的線程運行。該方法使一個線程暫停運行一段固定時間。在休眠時間內,線程將不運行,低優(yōu)先級的線程將有機會運行。yield()方法為只讓給同等優(yōu)先級的線程運行。如果沒有同等優(yōu)先級的線程是可運行狀態(tài),yield()方法將什么也不做,即線程將繼續(xù)運行。stop()方法是強行終止線程。wait()方法是線程間交互的方法,是使一個線程停止運行,進入等待狀態(tài)。
9). 開發(fā)軟件時對提高開發(fā)人員工作效率至關重要的是( )。
A.操作系統(tǒng)的資源管理功能
B.先進的軟件開發(fā)工具和環(huán)境
C.程序員的數(shù)量
D.計算機的并行處理能力
正確答案:B
答案解析:先進的軟件開發(fā)工具和環(huán)境對提高開發(fā)人員工作效率是至關重要的。
10). 信息隱蔽的概念與下述哪一種概念直接相關( )。
A.軟件結構定義
B.模塊獨立性
C.模塊類型劃分
D.模擬耦合度
正確答案:B
答案解析:信息隱蔽的概念與模塊獨立性這一概念直接相關。
Java面試題 4
一.選擇題(30分)
1.下列哪些情況可以終止當前線程的運行?
a. 拋出一個異常時。
b. 當該線程調用sleep()方法時。
c. 當創(chuàng)建一個新線程時。(與當前進程無關)
d. 當一個優(yōu)先級高的線程進入就緒狀態(tài)時。
2. 下面哪些為構造函數(shù)的特性定義
a. 在類中聲明構造函數(shù)時,名稱應該與類名相同
b. 具有重載特性,可以建立多個相同的名稱
c. 使用類建立新對象時,會自動執(zhí)行構造函數(shù),因此在構造函
數(shù)內設定變量的初值或進行內存分配
d. 以上都是
3. 關于異常處理機制的敘述哪些正確
a. catch部分捕捉到異常情況時,才會執(zhí)行finally部分(無論是否有毛病,都執(zhí)行)
b. 當try區(qū)段的程序發(fā)生異常時,才會執(zhí)行catch區(qū)段的程序
c. 不論程序是否發(fā)生錯誤及捕捉到異常情況,都會執(zhí)行finally部分
d. 以上都是
4. 下列關于接口的敘述中哪些是正確的
a. 接口中的數(shù)據必須設定初值(就是接口中的常量)
b. 接口中的方法都是抽象方法
c. 接口可以聲明引用
d. 以上都正確
5.Java語言中,方法的重寫(Overriding)和重載(Overloading)是多態(tài)性的不同表現(xiàn)。下邊哪些說法是對的?
A. 重寫是父類與子類之間多態(tài)性的一種表現(xiàn)。
B. 重寫是一個類中多態(tài)性的一種表現(xiàn)。
C. 重載是一個類中多態(tài)性的一種表現(xiàn)。
D. 重載是父類與子類之間多態(tài)性的一種表現(xiàn)。
6.在Struts應用的視圖中包含哪些組件?
A. JSP
B. Servlet
C. ActionServlet
D. Action
E. 代表業(yè)務邏輯或業(yè)務數(shù)據的JavaBean
F. EJB
G. 客戶化標簽
7. struts框架中,關于FormBean,下列哪些說法是正確的:
A FormBean是一種數(shù)據bean,主要用來封裝表單提交上來的數(shù)據,并把這些數(shù)據傳遞給Action
B 在FormBean中可以對頁面上傳遞來的參數(shù)進行一下格式上的驗證,這種驗證是一種客戶端的驗證
C 用戶每次提交表單,都會產生一個新的FormBean實例
D 動態(tài)FormBean不能進行驗證操作
8哪些方法可以進行servlet的調試?()
A、使用打印語句; 在桌面計算機上運行服務器
B、使用Apache Log4J
C、使用IDE集成的調試器
D、直接查看HTML源碼 ????
E、返回錯誤頁面給客戶
9、下面關于servlet的功用說法正確的有哪些?()
A、讀取客戶程序發(fā)送來的顯式數(shù)據
B、讀取客戶程序發(fā)送來的隱式數(shù)據
C、生成相應的結果
D、發(fā)送顯式的數(shù)據給客戶程序
E、發(fā)送隱式的數(shù)據給客戶程序
10、下面關于session的用法哪些是錯誤的?(
A、HttpSession session = new HttpSession();
request.getSession();
B、String haha =(String) session.getParameter(Attribute)(“haha”);
C、session.removeAttribute(“haha”);
D、session. setAttribute(“haha”,值);
11、關于說法正確的有哪些?()
A、URL的輸出在請求時入到JSP頁面中
B、不能含有影響整個頁面的JSP內容
C、被包含文件改變后不需更改使用它的頁面
D、被包含文件更改后,需要手動地更新使用它的頁面(不需要手動更新)
12、關于bean的說法正確的有哪些?()
A、具備一個零參數(shù)(空)的構造函數(shù)(不是必須的)
B、不應該有公開的實例變量(字段)
C、所有的屬性都必須通過getXxx和setXxx方法來訪問
D、布爾型的屬性使用isXxx,而非getXxx
13、下面關于MVC說法錯誤的有哪些?()
A、必須使用復雜的框架
B、使用內建的RequestDispatcher能夠很好地實現(xiàn)MVC
C、當其中一個組件發(fā)生變化的時候,MVC影響整個系統(tǒng)的設計
D、我們可以用MVC來處理單個請求
14、下面的標簽中哪些是JSTL標簽?()
15、struts框架,錯誤的是,下面那些說法正確?
A Struts中無法完成上傳功能
B Struts框架基于MVC模式
C Struts框架容易引起流程復雜、結構不清晰等問題(清晰)
D Struts可以有效地降低項目的類文件數(shù)目
二、填空題( 5分)
1、調用函數(shù)MOD(123,10)返回值為___。
2、select round (123.67,1) from dual;這語句輸出值為______。
3、創(chuàng)建一個臨時替代變量使用的字符是_____。
4、若v_comm = 2800, X := NVL (V_comm,0) ,則X的值為____。
5、調用函數(shù)INSTR(‘Here you are’,’er’)返回值為___。
三、判斷題(10分)
1、WHERE子句限制行記錄,也可以指定限制分組結果的條件。 ()
2、具有UNIQUE約束的列不能包含多個空值。 ()
3、DATE型數(shù)據中包含著時間值。 ()
4、具有外鍵約束的列可以包含空值。 ()
5、如果在類型為4)的列中輸入“hello”,則只能存儲hell。 ()
6、含有Group by子句的查詢,其結果是排好序的。 ()
7、定義游標時,其中的select語句不能使用order by子句。(子查詢
不能用) ()
9、觸發(fā)器一定會被激發(fā)。 、過程可以有返回值。 ()
10、instead
of觸發(fā)器只是基于視圖的。
四、寫出相應的SQL語句(括號內為列名)(10分)
1、查詢從事各工作(JOB)的員工人數(shù)。
2、查詢與員工SMITH在同一部門(DEPTNO)的員工的姓名(ENAME),工資(SAL)和部門。
3、查詢所有員工的姓名(ENAME),工資(SAL)和工資等級(GRADE)。
4、查詢獲得工資(SAL)最高的3個員工信息。
5、查詢所有員工的姓名(ENAME)及其主管姓名(ENAME)。
五、簡答題(15分)
1. 在PL/SQL程序中,進行用戶自定義異常處理的3個步驟是
什么?
2. 面向對象的特征有哪些方面?并簡要介紹
3. List、Map、Set三個接口,存取元素時,各有什么特點?
List 以特定次序來持有元素,可有重復元素。Set 無法擁有重復元素,內部排序。Map 保存key-value值,value可多值。
4 .struts1.0和struts2.0的區(qū)別?如何控制兩種框架中的單例模式?
5. 描述一下如何在struts1.0實現(xiàn)國際化,以兩國語言(中文,英文)為例:
6.struts中怎么配置form-bean、action
7. Hibernate自帶的分頁機制是什么?如果不使用Hibernate自帶的.分頁,則采用什么方式分頁?
8. hibernate中一對多配置文件返回的是什么?
9.什么樣的數(shù)據適合存放到第二級緩存中?
10你一般用spring做什么?
11項目中如何體現(xiàn)Spring中的切面編程,具體說明。
12 觸發(fā)觸發(fā)器的數(shù)據操作有哪些?
13 解釋視圖的含義以及使用視圖的好處。
14 簡述ORACLE中5種約束及其作用。
15 ORACLE中過程和函數(shù)的異同點。
六、編程題(30分)
1、創(chuàng)建一個PL/SQL塊,根據用戶輸入的編號,在emp表中查詢出該編號的員工姓名、部門號及其主管編號,要有異常處理。
2、創(chuàng)建一個PL/SQL塊,根據用戶輸入的工作,從emp表中逐條輸出從事這一工作的每位員工的編號、姓名和受雇如期,每條信息格式如下:(用游標實現(xiàn))
編號 姓名 受雇日期
7751 JOHN 95-12-31
3、編寫一個函數(shù),用于判斷EMP表中某一工作(JOB)是否存在,若EMP表存在此工作名稱,則返回TRUE,否則返回FALSE。
4、編寫一觸發(fā)器,在EMP表執(zhí)行插入或修改前被激發(fā),此觸發(fā)器將對員工的工資(SAL)超過5000進行報錯,不能插入或修改,不超
過5000的才將員工編號、工作及當時的日期(SYSDATE)插入UP_EMP表
(注:此表已建好,表結構為UP_EMP(EMPNO NUMBER(4),SAL NUMBER(7,2),UDETE DATE))
5下面程序的輸出結果是多少?
importjava.util.Date;
public class Test extends Date{
public static void main(String[] args) {
new Test().test();}
public void test(){
System.out.println(super.getClass().getName());}}
6下面的程序代碼輸出的結果是多少? public class smallT
{}
public static void main(String args[]) { } public int get() { } try { } finally { } return 2 ; return 1 ; smallT t = new smallT(); int b = t.get(); System.out.println(b);
7子線程循環(huán)10次,接著主線程循環(huán)100,接著又回到子線程循環(huán)10次,接著再回到主線程又循環(huán)100,如此循環(huán)50次,請寫出程序。
8去掉一個Vector集合中重復的元素
9有一個字符串,其中包含中文字符、英文字符和數(shù)字字符,請統(tǒng)計和打印出各個字符的個數(shù)
10. xxx公司的sql面試
Table EMPLOYEES Structure:
EMPLOYEE_ID NUMBER Primary Key,
FIRST_NAME VARCHAR2(25),
LAST_NAME VARCHAR2(25),
Salary number(8,2),
HiredDate DATE,
Departmentid number(2)
Table Departments Structure:
Departmentid number(2) Primary Key,
DepartmentName VARCHAR2(25).
(1)基于上述EMPLOYEES表寫出查詢:寫出雇用日期在今年的,或者工資在[1000,2000]之間的,或者員工姓名(last_name)以’Obama’打頭的所有員工,列出這些員工的全部個人信息。
(2) 基于上述EMPLOYEES表寫出查詢:查出部門平均工資大于1800
元的部門的所有員工,列出這些員工的全部個人信息。()
(3) 基于上述EMPLOYEES表寫出查詢:查出個人工資高于其所在部門平均工資的員工,列出這些員工的全部個人信息及該員工工資高出部門平均工資百分比。
參考答案
1答案:ABD
2答案: D
3答案:BC
4答案:AB
5答案AC
6答案:A,G
7答案:A
8A B C D E
9A B C D E
10A B D
11A B C
12B D
13A C
14A B C
15A B C
16答案:C
二 填空
3 123.7 & 2800 2
三判斷
× ×√√√√×√×√
四寫出相應的SQL語句
1Select job,count(*) from emp group by job;
2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);
3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;
4Select * from (select * from emp order by sal desc) where rownum<=3;
5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;
五簡答
可以通過聲明和發(fā)布來截獲自定義異常。
一、在聲明部分為聲明自定義異常名。
二、在執(zhí)行部分使用 RAISE 語句顯式地發(fā)布異常。
三、在相應的異常處理例程中引用已聲明的異常。
2(1).抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節(jié)。抽象包括兩個方面,一是過程抽象,二是數(shù)據抽象。
(2).繼承:
繼承是一種聯(lián)結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性, 新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。
(3).封裝:
封裝是把過程和數(shù)據包圍起來,對數(shù)據的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。
(4). 多態(tài)性:
多態(tài)性是指允許不同類的對象對同一消息作出響應。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應用程序函數(shù)同名問題。
List 以特定次序來持有元素,可有重復元素。Set 無法擁有重復元素,內部排序。Map 保存key-value值,value可多值。
3List 以特定次序來持有元素,可有重復元素。Set 無法擁有重復元素,內部排序。Map 保存key-value值,value可多值
4a、Action類:
struts1.2要求Action類繼承一個基類。struts2.0 Action要求繼承ActionSupport基類 b、線程模式
struts1.2 Action是單例模式的并且必須是線程安全的,因為僅有一個Action的實例來處理所有的請求。
單例策略限制了Struts1.2 Action能做的事情,并且開發(fā)時特別小心。Action資源必須是線程安全的或同步的。
struts2.0 Action為每一個請求產生一個實例,因此沒有線程安全問題。
c、Servlet依賴
struts1.2 Action依賴于Servlet API,因為當一個Action被調用時HttpServletRequest和HttpServletResponse被傳遞給execut方法。
struts2.0 Action不依賴于容器,允許Action脫離容器單獨測試。如果需要,Struts2 Action仍
然可以訪問初始的Request和Response。
但是,其他的元素減少或者消除了直接訪問HttpServletRequest和HttpServletResponse的必要性。
d、可測性
測試struts1.2 Action的一個主要問題是execute方法暴露了Servlet API(這使得測試要依賴于容器)。一個第三方擴展:struts TestCase
提供了一套struts1.2的模擬對象來進行測試。
Struts2.0 Action可以通過初始化、設置屬性、調用方法來測試,“依賴注入”也使得測試更容易。
【Java面試題】相關文章:
java面試題10-30
Java經典面試題12-29
java面試題匯總10-18
Java面試題集10-15
JAVA經典算法面試題04-16
經典的Java基礎面試題集錦11-03
高級Java面試題集合10-22
java面試題spring框架11-02
瞬聯(lián)java面試題03-26