第一篇:JAVA應聘筆試題目與答案
1.Java中的異常處理機制的簡單原理和應用。
當java程序違反了java的語義規(guī)則時,java虛擬機就會將發(fā)生的錯誤表示為一個異常。違反語義規(guī)則包括2種情況。一種是java類庫內置的語義檢查。例如數(shù)組下標越界,會引發(fā)indexoutofboundsexception;訪問null的對象時會引發(fā)nullpointerexception。另一種情況就是java允許程序員擴展這種語義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時用throw關鍵字引發(fā)異常。所有的異常都是java.lang.thowable的子類。
2.在java中,程序員能否實時的調用垃圾回收器對某個對象或所有對象進行垃圾回收?
java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程序員最頭疼的內存管理的問題迎刃而解,它使得java程序員在編寫程序的時候不再需要考慮內存管理。由于有個垃圾回收機制,java中的對象不再有“作用域”的概念,只有對象的引用才有“作用域”。垃圾回收可以有效的防止內存泄露,有效的使用可以使用的內存。垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預知的情況下對內存堆中已經(jīng)死亡的或者長時間沒有使用的對象進行清除和回收,程序員不能實時的調用垃圾回收器對某個對象或所有對象進行垃圾回收。回收機制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。
3.error與exception有什么區(qū)別?
error表示系統(tǒng)級的錯誤和程序不必處理的異常,exception表示需要捕捉或者需要程序進行處理的異常。
4.在java中一個類被聲明為final類型,表示了什么意思?
表示該類不能被繼承,是頂級類。下段腳本是否有錯?如有錯,請指出;若無錯,請說明輸出內容。
1)class Something {
2)int i;
3)public void doSomething(){
4)System.out.println(“i = ” + i);
5)}
6)}
正確。輸出的是“i = 0”。int i屬於instant variable(實例變量,或叫成員變量)。instant variable有default value。int的default value是0。
6談談final, finally, finalize的區(qū)別。
final—修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使
用,不能重載。
finally—異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進入 finally 塊(如果有的話)。
finalize—方法名。java 技術允許使用 finalize()方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調用的。
7&和&&的區(qū)別。
&是位運算符。&&是布爾邏輯運算符。
8gc是什么? 程序中如何調用gc?。
gc是垃圾收集器。java 程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以調用下面的方法之一:
system.gc()
runtime.getruntime().gc()math.round(11.5)等於多少? math.round(-11.5)等於多少?
math.round(11.5)返回(long)12,math.round(-11.5)返回(long)-11;short s1 = 1;s1 = s1 + 1;有什么錯? short s1 = 1;s1 += 1;有什么錯?
short s1 = 1;s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型。可修改為s1 =(short)(s1 + 1)。short s1 = 1;s1 += 1正確。
11java有沒有goto?
goto—java中的保留字,現(xiàn)在沒有在java中使用。數(shù)組有沒有l(wèi)ength()這個方法? string有沒有l(wèi)ength()這個方法?
數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。
string有l(wèi)ength()這個方法。overload和override的區(qū)別。overloaded的方法是否可以改變返回值的類型?
方法的重寫overriding和重載overloading是java多態(tài)性的不同表現(xiàn)。重寫overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(overloading)。
overloaded的方法是可以改變返回值的類型。請列舉所知道的最常見到的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, secur
ityexception, systemexception, undeclaredthrowableexception, unmodifiablesetexception, unsupportedoperationexceptionlist, set, map是否繼承自collection接口?
list,set是
map不是接口是否可繼承接口? 抽象類是否可實現(xiàn)(implements)接口?
接口可以繼承接口。抽象類可以實現(xiàn)(implements)接口。啟動一個線程是用run()還是start()?
啟動一個線程是調用start()方法,使線程所代表的虛擬處理機處于可運行狀態(tài),這意味著它可以由jvm調度并執(zhí)行。這并不意味著線程就會立即運行。run()方法可以產生必須退出的標志來停止一個線程。
18是否可以繼承string類?
string類是final類故不可以繼承。try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?
會執(zhí)行,在return前執(zhí)行。
20用最有效率的方法算出2乘以8等於幾?<< 3兩個對象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對不對?
不對,有相同的hash code。
22當一個對象被當作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結果,那么這里到底是值傳遞還是引用傳遞?
是值傳遞。java 編程語言只由值傳遞參數(shù)。當一個對象實例作為一個參數(shù)被傳遞到方法中時,參數(shù)的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。
23swtich是否能作用在byte上,是否能作用在long上,是否能作用在string上?
switch(expr1)中,expr1是一個整數(shù)表達式。因此傳遞給 switch 和 case 語句的參數(shù)應該是 int、short、char 或者 byte。long,string 都不能作用于swtich。
24、public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE,-1);
System.out.println(cal.getTime());
}
}
1.創(chuàng)建庫表EMP(雇員)、EMP_ADD_INFO(雇員附加信息)腳本如下
create table EMP(DEP_NOVARCHAR2(20)not null,EMP_IDVARCHAR2(20)not null,EMP_NAME VARCHAR2(64),SALARYNUMBER(10,2),EMP_GENDERVARCHAR2(2));
--Add comments to the columns
comment on column EMP.DEP_NO
is '部門代碼';
comment on column EMP.EMP_ID
is '雇員代碼';
comment on column EMP.EMP_NAME
is '雇員姓名';
comment on column EMP.SALARY
is '薪水';
comment on column EMP.GENDER
is '性別,M男士,F(xiàn)女士';
create table EMP_ADD_INFO(EMP_IDVARCHAR2(20)not null,EMP_WNUMBER(10,2),EMP_HNUMBER(10,2));
--Add comments to the columns
comment on column EMP.EMP_ID
is '雇員代碼';
comment on column EMP.EMP_W
is '雇員體重';
comment on column EMP.EMP_H
is '雇員身高';
1)請寫一個SQL語句,查詢部門’001’中薪水最高的雇員信息;
SELECT E.*
FROM EMP E
WHERE E.DEP_NO = '001'
AND E.SALARY =(SELECT MAX(EE.SALARY)
FROM EMP EE
WHERE EE.DEP_NO = E.DEP_NO);
2)請寫一個SQL語句,統(tǒng)計各部門人員數(shù)量信息,要求結果按照部門代碼降序排列; SELECT E.DEP_NO,COUNT(*)
FROM EMP E
GROUP BY E.DEP_NO
ORDER BY E.DEP_NO DESC;
3)請寫一個SQL語句,統(tǒng)計每個部門員工的數(shù)目大于一個的記錄
SELECT E.DEP_NO
FROM EMP E
GROUP BY E.DEP_NO
HAVING COUNT(*)> 1;
4)若庫表 EMP 無主鍵、無索引,表中存在大量完全相同的記錄,請使用sql語句刪除重
復記錄。
? 通過建立臨時表來實現(xiàn)
SQL>create table temp_emp as(select distinct * from emp)
SQL>truncate table emp;(清空emp表的數(shù)據(jù))
SQL>insert into emp select * from temp_emp;(灌入處理后好的數(shù)據(jù))
? 通過使用rowid來實現(xiàn)。
SQL>delete from employee where rowid not in(select max(t1.rowid)from employee t1 group by
t1.emp_id,t1.emp_name,t1.salary);--這里用min(rowid)也可以。
5)請寫一個SQL語句,查詢身高不小于175公分,體重少于等于85公斤的男雇員信息。SELECT A.*
FROM EMP E,EMP_ADD_INFO A
WHERE E.EMP_ID = A.EMP_ID
AND E.EMP_W <= 85
AND E.EMP_H >= 175
AND A.EMP_ GENDER = ‘M’
第二篇:JAVA程序員筆試題目(模版)
JAVA程序員筆試題目
1、有一個Vector對象,其中每一個元素都是一個String對象,請用For循環(huán)或者While循環(huán)輸出Vector中的元素,要求格式為:“第i個元素為:aaa”
2、答:
3、Iterator it=Vector.iterat();
4、While(it.hasNext()){
5、String temp=(String)it.next();System.out.print(第一個元素為:);System.out.println(temp);6、7、}
8、Jsp有哪些內置對象,作用分別是什么?
9、答:request,response,pageContext,session,application,out.config,page,exception等
10、在try {}里面有一個return語句,那么緊跟在try{}后的finally{}里面的 code是否會被執(zhí)行,是什么時候執(zhí)行,在return之前還是之后。答:
11、面向對象的基本特征是什么?
12、答:繼承,封裝,多態(tài),13、頁面之間傳遞參數(shù)的方法有哪些?
14、答:利用request,pageContext,session,application,cookie對象都可以
15、Servlet中什么時候調用doGet()和doPost()?這兩種方法有什么不同?
16、答:當表單是用get方法提交時,調用doGet(),反之調用doPost();
17、頁面中有一個名稱為unitprice的type=text的對象。要求輸入的數(shù)據(jù)不能為空,寫一個函數(shù)實現(xiàn)該功能,如果為空是給出提示。(用JavaScript語言寫出)答: