上汽集團(tuán)Java開發(fā)筆試題目_第1頁(yè)
上汽集團(tuán)Java開發(fā)筆試題目_第2頁(yè)
上汽集團(tuán)Java開發(fā)筆試題目_第3頁(yè)
上汽集團(tuán)Java開發(fā)筆試題目_第4頁(yè)
上汽集團(tuán)Java開發(fā)筆試題目_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論