




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
上汽集團(tuán)Java開發(fā)筆試題目
簡(jiǎn)述String和StringBuffer的區(qū)分。
String對(duì)一串字符進(jìn)行操作。不行變。一旦被創(chuàng)建,就不能修改它的值。
StringBuffer也是對(duì)一串字符進(jìn)行操作,但是可變類。
運(yùn)行時(shí)特別(RuntimeException)與一般特別有何不同?
一般特別是可捕獲到的。運(yùn)行時(shí)特別是不行預(yù)知的特別。
Sleep()和wait()有什么區(qū)分?
sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,把執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依舊保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對(duì)象鎖。
wait().會(huì)釋放鎖
實(shí)現(xiàn)多線程有幾種方法?
三種,
1.繼承Thread類,重寫run函數(shù)
2.實(shí)現(xiàn)Runnable接口,重寫run函數(shù)
3.實(shí)現(xiàn)Callable接口,重寫call函數(shù)
簡(jiǎn)述線程的基本狀態(tài)及狀態(tài)之間的關(guān)系。
Thread.ThreadState屬性供應(yīng)一個(gè)位掩碼,用它指示線程的當(dāng)前狀態(tài)。一個(gè)線程至少總是處于ThreadState枚舉中一個(gè)可能狀態(tài),并且可以同時(shí)處于多個(gè)狀態(tài)。
一旦線程由于調(diào)用Thread.Start而離開Unstarted狀態(tài),則它將永久無(wú)法返回到Unstarted狀態(tài)。同樣,線程也永久無(wú)法離開Stopped狀態(tài)。
什么是線程同步,何照實(shí)現(xiàn)線程的同步?
當(dāng)兩個(gè)或多個(gè)線程需要訪問(wèn)同一資源時(shí),它們需要以某種挨次來(lái)確保該資源某一時(shí)刻只能被一個(gè)線程使用的方式稱為同步。要想實(shí)現(xiàn)同步操作,必需要獲得每一個(gè)線程對(duì)象的鎖。獲得它可以保證在同一時(shí)刻只有一個(gè)線程訪問(wèn)對(duì)象中的共享關(guān)鍵代碼,并且在這個(gè)鎖被釋放之前,其他線程就不能再進(jìn)入這個(gè)共享代碼。此時(shí),假如還有其他線程想要獲得該對(duì)象的鎖,只得進(jìn)入等待隊(duì)列等待。只有當(dāng)擁有該對(duì)象鎖的線程退出共享代碼時(shí),鎖被釋放,等待隊(duì)列中第一個(gè)線程才能獲得該鎖,從而進(jìn)入共享代碼區(qū)。
JSP或Servlet中的forward和redirect有什么區(qū)分?
forward是服務(wù)器內(nèi)部重定向,程序收到懇求后重新定向到另一個(gè)程序,客戶機(jī)并不知道;redirect則是服務(wù)器收到懇求后發(fā)送一個(gè)狀態(tài)頭給客戶,客戶將再懇求一次,這里多了兩次網(wǎng)絡(luò)通信的來(lái)往。redirect是送到客戶端后再一次request,所以資料不被保留.
簡(jiǎn)述JDBC調(diào)用數(shù)據(jù)庫(kù)的基本步驟。
1,加載驅(qū)動(dòng)
2,創(chuàng)建連接
3,獵取語(yǔ)句對(duì)象
4,執(zhí)行sql語(yǔ)句
5,假如是查詢,還可以使用結(jié)果集
6,關(guān)閉連接
7,捕獲和處理特別
簡(jiǎn)述Servlet的生命周期。
Servlet被服務(wù)器實(shí)例化后,容器運(yùn)行其init方法,懇求到達(dá)時(shí)運(yùn)行其service方法,service方法自動(dòng)派遣運(yùn)行與懇求對(duì)應(yīng)的do方法(doGet,doPost)等,當(dāng)服務(wù)器打算將實(shí)例銷毀的時(shí)候調(diào)用其destroy方法。
二、算法(總共20分)
請(qǐng)列舉幾種排序算法,并用JAVA實(shí)現(xiàn)快速排序算法。(6分)
冒泡排序,快速排序,shaker排序,堆排序。
publicvoidquick(Integer[]str){
if(str.length0){//查看數(shù)組是否為空
_quickSort(str,0,str.length1);
}
}
publicvoid_quickSort(Integer[]list,intlow,inthigh){
if(lowhigh){
intmiddle=getMiddle(list,low,high);//將list數(shù)組進(jìn)行一分為二
_quickSort(list,low,middle1);//對(duì)低字表進(jìn)行遞歸排序
_quickSort(list,middle+1,high);//對(duì)高字表進(jìn)行遞歸排序
}
}
publicintgetMiddle(Integer[]list,intlow,inthigh){
inttmp=list[low];//數(shù)組的第一個(gè)作為中軸
while(lowhigh){
while(lowhighlist[high]tmp){
high;
}
list[low]=list[high];//比中軸小的記錄移到低端
while(lowhighlist[low]tmp){
low++;
}
list[high]=list[low];//比中軸大的記錄移到高端
}
list[low]=tmp;//中軸記錄到尾
returnlow;//返回中軸的位置
}
用Java實(shí)現(xiàn)二叉樹前序遍歷、中序遍歷和后序遍歷。(8分)
publicclassTree{
privateintdata;//數(shù)據(jù)節(jié)點(diǎn)
privateTreeleft;//左子樹
privateTreeright;//右子樹
publicTree(intdata){
this.data=data;
this.left=null;
this.right=null;
}
/**
*創(chuàng)建二叉樹,返回根結(jié)點(diǎn)
*/
publicstaticTreecreateTree(int[]input){
Treeroot=null;
Treetemp=null;
for(inti=0;iinput.length;i++){
//創(chuàng)建根節(jié)點(diǎn)
if(root==null){
root=temp=newTree(input[i]);
}else{
//回到根結(jié)點(diǎn)
temp=root;
//添加節(jié)點(diǎn)
while(temp.data!=input[i]){
if(input[i]=temp.data){
if(temp.left!=null){
temp=temp.left;
}else{
temp.left=newTree(input[i]);
}
}else{
if(temp.right!=null){
temp=temp.right;
}else{
temp.right=newTree(input[i]);
}
}
}
}
}
returnroot;
}
/**
*前序遍歷
*/
publicstaticvoidpreOrder(Treetree){
if(tree!=null){
System.out.print(tree.data+"');
preOrder(tree.left);
preOrder(tree.right);
}
}
/**
*中序遍歷
*/
publicstaticvoidmidOrder(Treetree){
if(tree!=null){
midOrder(tree.left);
System.out.print(tree.data+"');
midOrder(tree.right);
}
}
/**
*后序遍歷
*/
publicstaticvoidposOrder(Treetree){
if(tree!=null){
posOrder(tree.left);
posOrder(tree.right);
System.out.print(tree.data+"');
}
}
/**
*求二叉樹的深度
*/
publicstaticintlength(Treetree){
intdepth1;
intdepth2;
if(tree==null)return0;
//左子樹的深度
depth1=length(tree.left);
//右子樹的深度
depth2=length(tree.right);
if(depth1depth2)
returndepth1+1;
else
returndepth2+1;
}
publicstaticvoidmain(String[]args){
int[]input={4,2,6,1,3,5,7,8,10};
Treetree=createTree(input);
System.out.print("前序遍歷:");
preOrder(tree);
System.out.print("\n中序遍歷:");
midOrder(tree);
System.out.print("\n后序遍歷:");
posOrder(tree);
}
}
三、閱讀代碼,并回答問(wèn)題(6分)
PublicStringlistToString(VectorstrList){
Stringstr=newString();
SortedSetset=newTreeSet();
set.addAll(strList);
for(Iteratoriter=set.iterator();iter.hasNext();
StringcurrStr=(String)iter.next();
Str+=currStr+";';
}
returnstr;
問(wèn)題1:
這段代碼完成什么功能?假如輸入列表{"To',"SAIC',"Welcome'},輸入結(jié)果是什么?
數(shù)組元素拼接。TreeSet是按字母挨次存儲(chǔ)的,結(jié)果是:SAIC;To;Welcome;
問(wèn)題2這段代碼中有什么地方有錯(cuò)誤或者可以改善的地方嗎?
錯(cuò)誤:for(Iteratoriter=set.iterator();iter.hasNext();后面缺少")'
改善:拼接到最終時(shí),最終一個(gè)分號(hào)應(yīng)去掉。
四、設(shè)計(jì)模式(總分10分,每題5分)
編程實(shí)現(xiàn)設(shè)計(jì)模式:Singleton(單例模式)。
classSingleton{
privatestaticSingletons;
privateSingleton(){
}
publicstaticSingletongetSigleton()
{
if(s==null)s=newSingleton();
returns;
}
}
畫出抽象工廠(AbstractFactory)的UML類圖。
五、數(shù)據(jù)庫(kù)(總分20分)
SOL查詢語(yǔ)句的左外連接、右外連接、全外連接、內(nèi)聯(lián)接之間的區(qū)分。
左外連接的結(jié)果集包括LEFTOUTER子句中指定的左表的全部行,而不僅僅是連接列所匹配的行
右外連接是左向外連接的'反向連接。將返回右表的全部行。
全外連接返回左表和右表中的全部行。當(dāng)某行在另一個(gè)表中沒(méi)有匹配行時(shí),則另一個(gè)表的選擇列表列包含空值。假如表之間有匹配行,則整個(gè)結(jié)果集行包含基表的數(shù)據(jù)值。
內(nèi)連接使用比較運(yùn)算符依據(jù)每個(gè)表共有的列的值匹配兩個(gè)表中的行。
舉例說(shuō)明GROUPBY和HAVING子句的意義和使用方法。
每個(gè)部門有多少人
就要用到GROUPBY
selectDepartmentIDas部門名稱,
COUNT(*)as個(gè)數(shù)fromBasicDepartmentgroupbyDepartmentID
顯示每個(gè)地區(qū)的總面積.僅顯示那些面積超過(guò)1000000的地區(qū)。
SELECTregion,SUM(area)
FROMbbc
GROUPBYregion
HAVINGSUM(area)1000000
IN和EXISTS的區(qū)分(4分)
比如in(1,2)就是=1or=2的一種簡(jiǎn)潔寫法,所以一般在元素少的時(shí)候使用IN,假如多的話就用exists指定一個(gè)子查詢。
編寫SQL語(yǔ)句
為管理崗位業(yè)務(wù)培訓(xùn)信息,建立3個(gè)表。
S(S#,SN,SD,SA)S#,SN,SD,SA分別代表學(xué)號(hào)、
學(xué)員姓名、所屬單位、學(xué)員年齡
C(C#,CN)C#,CN分別代表課程編號(hào),課程名稱。
SC(S#,C#,G)S#,C#,G分別代表學(xué)號(hào),課程編號(hào)、學(xué)習(xí)成果
問(wèn)題1:使用標(biāo)準(zhǔn)嵌套SQL語(yǔ)句查詢選修課程名稱為"稅收基礎(chǔ)"的學(xué)員學(xué)號(hào)和姓名。
Select
sscs#,ssc.sn
fromc
leftjoin
(selects.*,sc.c#
Fromsc
Leftjoins
ons.s#=sc.s#
)asssc
onssc.c#=c.c#
=稅收基礎(chǔ)
問(wèn)題2:查詢選修課程為"C2的全部學(xué)員的學(xué)號(hào)、姓名、所屬單位、成果,并根據(jù)所屬單位升序、成果降序排列。
selectsc.c#,s.sn,s.sd,sc.g
Fromsc
Leftjoins
ons.s#=sc.s#
wherec.c#=C2
orderbys.sdasc,sc.g.desc
問(wèn)題3:查詢?nèi)繉W(xué)員選修課程的數(shù)量,列出學(xué)號(hào)、姓名、所選課程數(shù),并根據(jù)課程數(shù)降序排列。
Selectsc.s#,s.sn,sc.count
(
selectcount(s#)ascount,s#
fromsc
groupbysc.s#
)sc
Leftjoins
ons.s#=sc.s#
orderbysc.countdesc
問(wèn)題4:查詢選修課程數(shù)超過(guò)5次學(xué)員的學(xué)號(hào)、姓名、所屬單位、所選課程數(shù),并根據(jù)學(xué)號(hào)升序排列。
SELECT
S#,
SN,
SD,
(SELECTCOUNT(DISTINCTC#)FROMSC
WhereS#=s.S#
)ascount
FROMS
WHERES#IN(
SELECT[S#]FROMSC
GROUPBY[S#]
HAVINGCOUNT(DISTINCT[C#])5)
六、框架(總分30分)
JSF
以JSF為例簡(jiǎn)述MVC設(shè)計(jì)模式。
簡(jiǎn)述JSF懇求處理三命周期
1.恢復(fù)視圖
2.應(yīng)用懇求的值;處理驗(yàn)證
3.更新模型值;處理大事
4.調(diào)用程序;處理大事
5.進(jìn)行響應(yīng);處理大事
JSF中的BackingBea是干什么用的?
Backingbean定義了頁(yè)面上的UI組件的屬性和處理規(guī)律。每一個(gè)backingbean的屬性對(duì)應(yīng)一個(gè)組件或者組件的值。Backingbean同時(shí)定義了一組執(zhí)行組件功能的方法,比如驗(yàn)證組件的數(shù)據(jù),處理組件觸發(fā)的大事,當(dāng)組件activate時(shí)處理與導(dǎo)航相關(guān)的操作。
JSF中的Converter是干什么用的?
輸入變換:在用戶提交時(shí)對(duì)用戶輸入值進(jìn)行變換
輸出變換:在畫面顯示前對(duì)顯示值進(jìn)行變換
JSF中的Validator是干什么用的?
對(duì)用戶輸入的數(shù)據(jù)進(jìn)行驗(yàn)證。
簡(jiǎn)述Value-changeEvents、ActionEvents、DataMooelEvents、PhaseEvents。
值轉(zhuǎn)變大事,動(dòng)作大事,數(shù)據(jù)模型大事,階段大事
JSFRequestProcessingLifecycle的六個(gè)階段。
回復(fù)畫面(RestoreView)
套用申請(qǐng)值(ApplyRequestValues)
執(zhí)行驗(yàn)證(ProcessValidations)
更新模型值(UpdateModelValues)
喚起應(yīng)用程序(InvokeApplication)
繪制回應(yīng)(RenderResponse)
CommandButton的immediate屬性起什么作用?
JSF視圖組件在取得懇求中該取得的值之后,即馬上處理指定的大事,而不再進(jìn)行后續(xù)的轉(zhuǎn)換器處理、驗(yàn)證器處理、更新模
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 墩身安全施工方案
- 永年冷庫(kù)施工方案
- 基礎(chǔ)回填土施工方案
- 化工廠施工方案
- 二零二五年度環(huán)??萍紗挝唤獬齽趧?dòng)合同及綠色技術(shù)轉(zhuǎn)移協(xié)議
- 2025年度超市超市商品防損員勞動(dòng)合同范本
- 二零二五年度蘇州市全日制勞動(dòng)合同員工休息與休假規(guī)定合同
- 二零二五年度農(nóng)村土地占用與農(nóng)村文化傳承合同協(xié)議
- 二零二五年度婚姻忠誠(chéng)保證協(xié)議:男方出軌責(zé)任書
- 二零二五年度個(gè)人車輛抵押汽車貸款合同續(xù)簽合同
- 2024年批次杭州市教育局所屬事業(yè)單位招聘筆試真題
- 2024年海東市第二人民醫(yī)院自主招聘專業(yè)技術(shù)人員考試真題
- 2025年湖南環(huán)境生物職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案一套
- 14 文言文二則 學(xué)弈 教學(xué)設(shè)計(jì)-2024-2025學(xué)年語(yǔ)文六年級(jí)下冊(cè)統(tǒng)編版
- Unit 4 Eat Well(大單元教學(xué)設(shè)計(jì))2024-2025學(xué)年七年級(jí)英語(yǔ)下冊(cè)同步備課系列(人教版2024)
- 2024-2030年中國(guó)游戲直播行業(yè)市場(chǎng)深度分析及投資策略研究報(bào)告
- 統(tǒng)編版小學(xué)語(yǔ)文六年級(jí)下冊(cè)第四單元《理想和信念》作業(yè)設(shè)計(jì)
- 2025年春季學(xué)期學(xué)校工作計(jì)劃及安排表
- 化驗(yàn)班組安全培訓(xùn)
- 英語(yǔ)-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 丹佛斯變頻器培訓(xùn)經(jīng)典課件
評(píng)論
0/150
提交評(píng)論