




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一: 選擇題1. 關(guān)于以下程序代碼的說明正確的是( D )1class HasStatic2 private static int x=100;3 public static void main(String args )4 HasStatic hs1=new HasStatic( );5 hs1.x+;6 HasStatic hs2=new HasStatic( );7 hs2.x+;8 hs1=new HasStatic( );9 hs1.x+;10 HasStatic.x- -;11 System.out.println(“x=”+x);12 13 A、 5行不能通過編譯,因?yàn)橐昧怂接?/p>
2、靜態(tài)變量B、 10行不能通過編譯,因?yàn)閤是私有靜態(tài)變量C、 程序通過編譯,輸出結(jié)果為:x=103D、 程序通過編譯,輸出結(jié)果為:x=1022. 下列關(guān)于for循環(huán)和while循環(huán)的說法中哪個是正確的?( B )Awhile循環(huán)能實(shí)現(xiàn)的操作,for循環(huán)也都能實(shí)現(xiàn)Bwhile循環(huán)判斷條件一般是程序結(jié)果,for循環(huán)判斷條件一般是非程序結(jié)果C兩種循環(huán)任何時候都可替換D兩種循環(huán)結(jié)構(gòu)中都必須有循環(huán)體,循環(huán)體不能為空3. 以下選項(xiàng)中循環(huán)結(jié)構(gòu)合法的是( C )A、while (int i7) i+; System.out.println(“i is “+i); B、 int j=3;while(j) Syst
3、em.out.println(“ j is “+j);C、int j=0;for(int k=0; j + k !=10; j+,k+) System.out.println(“ j is “+ j + “k is”+ k);D、 int j=0;do System.out.println( “j is “+j+); if (j = = 3) continue loop; while (j10);4. 給出下面代碼段, 哪行將引起一個編譯時錯誤?( D )1) public class Test 2) int n = 0; 3) int m = 0; 4) public Test(int a)
4、 m=a; 5) public static void main(String arg) 6) Test t1,t2; 7) int j,k; 8) j=3; k=5; 9) t1=new Test(); 10) t2=new Test(k); 11) 12) A. 行1 B. 行4 C. 行6 D. 行95. 下面的方法,當(dāng)輸入為2的時候返回值是多少?( D ) public int getValue(int i) int result = 0; switch (i) case 1: result = result + i; case 2: result = result + i * 2;
5、case 3: result = result + i * 3; return result; A 0 B 2 C 4 D 10二 : 簡述題1、描述一下 JVM 加載 class 文件的原理機(jī)制?JVM 中類的裝載是由 ClassLoader 和它的子類來實(shí)現(xiàn)的,Java ClassLoader 是一個重要的Java 運(yùn)行時系統(tǒng)組件。它負(fù)責(zé)在運(yùn)行時查找和裝入類文件的類。2、heap 和 stack 有什么區(qū)別。java 的內(nèi)存分為兩類,一類是棧內(nèi)存,一類是堆內(nèi)存。棧內(nèi)存是指程序進(jìn)入一個方法時, 會為這個方法單獨(dú)分配一塊私屬存儲空間,用于存儲這個方法內(nèi)部的局部變量,當(dāng)這個方法 結(jié)束時,分配給這
6、個方法的棧會釋放,這個棧中的變量也將隨之釋放。堆是與棧作用不同的內(nèi)存,一般用于存放不放在當(dāng)前方法棧中的那些數(shù)據(jù),例如,使用 new 創(chuàng)建的對象都放在堆里,所以,它不會隨方法的結(jié)束而消失。方法中的局部變量使用 final 修飾后,放在堆中,而不是棧中。3、GC 是什么?為什么要有 GC?GC 是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方, 忘記或者錯誤的內(nèi)存回收會導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java 提供的 GC 功能可以 自動監(jiān)測對象是否超過作用域從而達(dá)到自動回收內(nèi)存的目的,Java 語言沒有提供釋放已分 配內(nèi)存的顯示操作方法。4、列舉出一些
7、常用的類,包,接口,請各舉 5 個要讓人家感覺你對 java ee 開發(fā)很熟,所以,不能僅僅只列 core java 中的那些東西,要多 列你在做 ssh 項(xiàng)目中涉及的那些東西。就寫你最近寫的那些程序中涉及的那些類。常用的類:BufferedReader BufferedWriterFileReader FileWirterStringInteger java.util.Date,System,Class,List,HashMap常用的包:java.langjava.io java.util java.sql,javax.servlet,org.apache.strtuts.action,or
8、g.hibernate 常用的接口:Remote List MapDocumentNodeList,Servlet,HttpServletRequest,HttpServletResponse,Transaction(Hibernate)、Session(Hibernate),HttpSession5 java 中有幾種類型的流?JDK 為每種類型的流提供了一些抽象類以供繼承, 請說出他們分別是哪些類?字節(jié)流,字符流。字節(jié)流繼承于 InputStream OutputStream,字符流繼承于 InputStream ReaderOutputStreamWriter。在 java.io 包中還
9、有許多其他的流,主要是為了提 高性能和使用方便。 6、多線程有幾種實(shí)現(xiàn)方法?同步有幾種實(shí)現(xiàn)方法?多線程有兩種實(shí)現(xiàn)方法,分別是繼承 Thread 類與實(shí)現(xiàn) Runnable 接口 同步的實(shí)現(xiàn)方面有兩種,分別是 synchronized,wait 與 notify wait():使一個線程處于等待狀態(tài),并且釋放所持有的對象的 lock。 sleep():使一個正在運(yùn)行的線程處于睡眠狀態(tài),是一個靜態(tài)方法,調(diào)用此方法要捕捉InterruptedException(中斷異常)異常。notify():喚醒一個處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時候,并不能確切的喚醒 某一個等待狀態(tài)的線程,而是由 J
10、VM 確定喚醒哪個線程,而且不是按優(yōu)先級。 Allnotity():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。7、說一說 Servlet 的生命周期?答:servlet 有良好的生存期的定義,包括加載和實(shí)例化、初始化、處理請求以及服務(wù)結(jié)束。 這個生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy 方法表達(dá)。Servlet 被服務(wù)器實(shí)例化后,容器運(yùn)行其 init 方法,請求到達(dá)時運(yùn)行其 service 方法,service 方法自動派遣運(yùn)行與請求對應(yīng)的 doXXX 方法(doGet,doPost)等,
11、當(dāng)服務(wù)器決定將實(shí)例 銷毀的時候調(diào)用其 destroy 方法。web 容器加載 servlet,生命周期開始。通過調(diào)用 servlet 的 init()方法進(jìn)行 servlet 的初始化。 通過調(diào)用 service()方法實(shí)現(xiàn),根據(jù)請求的不同調(diào)用不同的 do*()方法。結(jié)束服務(wù),web 容 器調(diào)用 servlet 的 destroy()方法。8、說出數(shù)據(jù)連接池的工作機(jī)制是什么?J2EE 服務(wù)器啟動時會建立一定數(shù)量的池連接,并一直維持不少于此數(shù)目的池連接??蛻舳?程序需要連接時,池驅(qū)動程序會返回一個未使用的池連接并將其表記為忙。如果當(dāng)前沒有空 閑連接,池驅(qū)動程序就新建一定數(shù)量的連接,新建連接的數(shù)量
12、有配置參數(shù)決定。當(dāng)使用的池 連接調(diào)用完成后,池驅(qū)動程序?qū)⒋诉B接表記為空閑,其他調(diào)用就可以使用這個連接。實(shí)現(xiàn)方式,返回的 Connection 是原始 Connection 的代理,代理 Connection 的 close 方法 不是真正關(guān)連接,而是把它代理的 Connection 對象還回到連接池中。9、這段代碼有什么不足之處?try Connection conn = .; Statement stmt = .;ResultSet rs =stmt.executeQuery(select * from table1);while(rs.next() catch(Exception ex)
13、答:沒有 finally 語句來關(guān)閉各個對象,另外,使用 finally 之后,要把變量的定義放在 try 語 句塊的外面,以便在 try 語句塊之外的 finally 塊中仍可以訪問這些變量。10、一個用戶具有多個角色,請查詢出該表中具有該用戶的所有角色的其他用戶。select count(*) as num,tb.id fromtb,(select role from tbwhere id=xxx) as t1 wheretb.role = t1.role and tb.id != t1.idgroup by tb.id havingnum = select count(role)from
14、 tb where id=xxx;11、一個用戶表中有一個積分字段,假如數(shù)據(jù)庫中有 100 多萬個用戶,若要在 每年第一天凌晨將積分清零,你將考慮什么,你將想什么辦法解決?alter table drop column score;alter table add colunm score int; 可能會很快,但是需要試驗(yàn),試驗(yàn)不能拿真實(shí)的環(huán)境來操刀,并且要注意, 這樣的操作時無法回滾的,在我的印象中,只有 inert update delete 等 DML 語句才能回滾, 對于 create table,drop table ,alter table 等 DDL 語句是不能回滾。解決方案一,
15、update user set score=0; 解決方案二,假設(shè)上面的代碼要執(zhí)行好長時間,超出我們的容忍范圍,那我就 alter table user drop columnscore;alter table user add column score int。下面代碼實(shí)現(xiàn)每年的那個凌晨時刻進(jìn)行清零。Runnable runnable =new Runnable()public voidrun()clearDb();schedule(this,newDate(new Date().getYear()+1,0,0);schedule(runnable,new Date(newDate().ge
16、tYear()+1,0,1);12、你對 Spring 的理解, 什么是 spring 的 IOC AOP。1.Spring 實(shí)現(xiàn)了工廠模式的工廠類(在這里有必要解釋清楚什么是工廠模式),這個類名為 BeanFactory(實(shí)際上是一個接口),在程序中通常 BeanFactory 的子類 ApplicationContext。 Spring 相當(dāng)于一個大的工廠類,在其配置文件中通過元素配置用于創(chuàng)建實(shí)例對象的 類名和實(shí)例對象的屬性。2. Spring 提供了對 IOC 良好支持,IOC 是一種編程思想,是一種架構(gòu)藝術(shù),利用這種思想可以很好地實(shí)現(xiàn)模塊之間的解耦。IOC 也稱為 D(IDepency
17、 Injection),什么叫依賴注入呢?譬如,Class ProgrammerComputer computer =null;public void code()/Computercomputer = new IBMComputer();/Computercomputer = beanfacotry.getComputer();computer.write();public voidsetComputer(Computer computer)puter= computer; 另外兩種方式都由依賴,第一個直接依賴于目標(biāo)類,第二個把依賴轉(zhuǎn)移到工廠上,第三個徹 底與目標(biāo)和工廠解耦了。在 spring 的配置文件中配置片段如下:3. Spring 提供了對 AOP 技術(shù)的良好封裝, AOP 稱為面向切面編程,就是系統(tǒng)中有很多各 不相干的類的方法,在這些眾多方法中要加入某種系統(tǒng)功能的代碼,例如,加入日志,加入 權(quán)限判斷,加入異常處理,這種應(yīng)用稱為 AOP。實(shí)現(xiàn) AOP 功能采用的是代理技術(shù),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省課題申報(bào)評審書
- 婦聯(lián)調(diào)研課題申報(bào)書
- 課題申報(bào)書序號
- 節(jié)水潔具研究課題申報(bào)書
- Unit 3 Keep Fit 單元檢測練習(xí)(含答案)七年級英語下冊(人教版2024)
- 員工合同范本32條
- 學(xué)校美育工作課題申報(bào)書
- 付款保證合同范本
- 三拆除工程合同范本
- 農(nóng)村梯田出租合同范本
- 網(wǎng)絡(luò)安全用戶實(shí)體行為分析技術(shù)UEBA白皮書
- 室內(nèi)設(shè)計(jì)-中式古典風(fēng)格課件
- 軌道鋪設(shè)施工專項(xiàng)方案
- MOC3061驅(qū)動BT134雙向可控硅
- 七下地理《俄羅斯》PPT課件
- 員工勞動合同(易才簽訂要求)
- 無線通信與網(wǎng)絡(luò)復(fù)習(xí)資料
- 八大員考試試題——勞務(wù)員題庫
- 第七章 住院患者營養(yǎng)風(fēng)險篩查與評價
- 人教版小學(xué)數(shù)學(xué)五年級下冊教材分析
- 省十一屆人大三次會議秘書處工作總結(jié)
評論
0/150
提交評論