




已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
百川同達(dá) Java 程序員應(yīng)聘摸底考試題一、選擇題。(2*11 分)1. class ExSuper String name; String nick_name; public ExSuper(String s,String t) name = s; nick_name = t; public String toString() return name; public class Example extends ExSuper public Example(String s,String t) super(s,t); public String toString() return name + a.k.a + nick_name; public static void main(String args) ExSuper a = new ExSuper(First,1st); ExSuper b = new Example(Second,2nd); System.out.println(a is + a.toString(); System.out.println(b is + b.toString(); A. 編譯時會出現(xiàn)異常。B. 運行結(jié)果為: a is First b is secondC. 運行結(jié)果為: a is First b is Secong a.k.a 2ndD. 運行結(jié)果為: a is First a.k.a 1nd b is Second a.k.a 2nd2. abstract class MineBase abstract void amethod(); static int i;public class Mine extends MineBase public static void main(String argv) int ar = new int5; for (int i = 0; i ar.length; i+) System.out.println(ari); A. 打印 5 個0。 B. 編譯出錯,數(shù)組 ar 必須初始化。C編譯出錯, Mine 應(yīng)聲明為abstract。D. 出現(xiàn) IndexOutOfBoundes 的例外。3. public class Foo public static void main(String args) try return; finally System.out.println(Finally); A. 程序正常運行,但不輸出任何結(jié)果。 B. 程序正常運行,并輸出 “Finally”。C. 編譯能通過,但運行時會出現(xiàn)一個例外。D. 因為沒有 catch 語句塊,所以不能通過編譯4. 以下 sql 語句正確的是: A.select studentid,depart,count(*) from student group by depart;B.select studentid, count(*) from student;C.select depart,max(avg(age)from student group by depart;D.select studentid,avg(score),max(score)from score group by studentid5. 標(biāo)簽中 scope 的范圍由小到大是A page session request application B. application page request sessionC. application session request page D. page request session application6. 要讓用戶共享一個 JavaBean 的對象則該對象的范圍應(yīng)改設(shè)置為:A. session B. page C. application D. request7. 關(guān)于自定義標(biāo)簽的使用不正確的是: A 必須在 JSP 頁面中使用 B. 必須經(jīng)過 web.xml 影射 C. 必須存在 tld 文件 D. 自定義標(biāo)簽的類必須是 public 的8. 關(guān)于外鍵約束不正確的是:A外鍵約束與唯一約束不能同時存在與一個字段B子表外鍵列的值必須在主表參照列表值的范圍內(nèi),或者為空C主表外鍵值被子表參照時,主表記錄不允許被刪除D外鍵參照的是主表的主鍵或者唯一鍵9. 下面的類,正確的描述是_ public class Example public static void main(String args) static int x = new int15; System.out.println(x5); A. 編譯錯誤 B.編譯正確,執(zhí)行錯誤 C. 輸出 0 D. 輸出是 null10. 關(guān)于 Oracle 中存儲過程與函數(shù)錯誤的是: A函數(shù)必須定義返回類型 B. 存儲過程不能定義返回類型 C函數(shù)可以使用 out 類型參數(shù) D. 存儲過程可以用 in out 類型參數(shù)11. 關(guān)于 Servlet 錯誤的是: A . 在 MVC 模式中 Servlet 一般用作控制器 B. Tomcat5.0 中 Servlet 必須通過 web.xml 影射訪問C. Servlet 中可以直接使用內(nèi)置對象 out 調(diào)用 out.println() 進(jìn)行輸出,而不聲明D. Servlet 中可以跳轉(zhuǎn)到另一個 Servlet。二、 簡答題(40 分,答案寫在其他白紙上)1. Vector 與 ArrayList 有什么區(qū)別,在 java.util 包中有哪兩個類有類似區(qū)別?(3分)ArrayList類ArrayList實現(xiàn)了可變大小的數(shù)組。它允許所有元素,包括null。ArrayList沒有同步。size,isEmpty,get,set方法運行時間為常數(shù)。但是add方法開銷為分?jǐn)偟某?shù),添加n個元素需要O(n)的時間。其他的方法運行時間為線性。每個ArrayList實例都有一個容量(Capacity),即用于存儲元素的數(shù)組的大小。這個容量可隨著不斷添加新元素而自動增加,但是增長算法并沒有定義。當(dāng)需要插入大量元素時,在插入前可以調(diào)用ensureCapacity方法來增加ArrayList的容量以提高插入效率。和LinkedList一樣,ArrayList也是非同步的(unsynchronized)。Vector類Vector非常類似ArrayList,但是Vector是同步的。由Vector創(chuàng)建的Iterator,雖然和ArrayList創(chuàng)建的Iterator是同一接口,但是,因為Vector是同步的,當(dāng)一個Iterator被創(chuàng)建而且正在被使用,另一個線程改變了Vector的狀態(tài)(例如,添加或刪除了一些元素),這時調(diào)用Iterator的方法時將拋出ConcurrentModificationException,因此必須捕獲該異常。Hashtable HashMap 類似2. response.sendRedirect()與都能跳轉(zhuǎn),它們有什么區(qū)別? (3分) 重定向 跳轉(zhuǎn)3. 與 都能包含有什么區(qū)別? (3分) 偽指令會導(dǎo)致 Web 瀏覽器高速緩存所有頁面。 總是會檢查所含文件中的變化。4. 存在學(xué)生表,課程表,分?jǐn)?shù)表三個表: Create table student(studentid number(10) prinary key,name varchar2(30),depart varchar2(20); Create table lesson(lessonid number(10) primary key, lessonname varchar2(20); Create table score(studentid number(10) foreign key references student(studentid), Lessonid number(10) foreign key references student(studentid) Score number(3);寫一個SQL語句求出考試科目名稱為“java語言”的科目中分?jǐn)?shù)為前10名的學(xué)生id,姓名,專業(yè)。select top 3 stu.studentid,,l.lessonname from score s inner join lesson l on s.Lessonid=l.lessonid inner join student stu on s.studentid=stu.studentid where l.lessonname=java order by s.Score desc;5、Struts框架應(yīng)用了哪些設(shè)計模式?MVC 工廠 單例 是三個最明顯的設(shè)計模式6、請闡述Spring IOC思想(4分)一、什么是IOCIoC就是Inversion of Control,控制反轉(zhuǎn)。在Java開發(fā)中,IoC意味著將你設(shè)計好的類交給系統(tǒng)去控制,而不是在你的類內(nèi)部控制。這稱為控制反轉(zhuǎn)。下面我們以幾個例子來說明什么是IoC假設(shè)我們要設(shè)計一個Girl和一個Boy類,其中Girl有kiss方法,即Girl想要Kiss一個Boy。那么,我們的問題是,Girl如何能夠認(rèn)識這個Boy? 在我們中國,常見的與GG的認(rèn)識方式有以下幾種 青梅竹馬; 親友介紹; 父母包辦 那么哪一種才是最好呢? 青梅竹馬:Girl從小就知道自己的Boy。 public class Girl void kiss() Boy boy = new Boy(); 然而從開始就創(chuàng)建的Boy缺點就是無法在更換。并且要負(fù)責(zé)Boy的整個生命周期。如果我們的Girl想要換一個怎么辦?(筆者嚴(yán)重不支持Girl經(jīng)常更換Boy) 親友介紹:由中間人負(fù)責(zé)提供Boy來見面 public class Girl void kiss() Boy boy = BoyFactory.createBoy(); 親友介紹,固然是好。如果不滿意,盡管另外換一個好了。但是,親友BoyFactory經(jīng)常是以Singleton的形式出現(xiàn),不然就是,存在于Globals,無處不在,無處不能。實在是太繁瑣了一點,不夠靈活。我為什么一定要這個親友摻和進(jìn)來呢?為什么一定要付給她介紹費呢?萬一最好的朋友愛上了我的男朋友呢? 父母包辦:一切交給父母,自己不用費吹灰之力,只需要等著Kiss就好了。 public class Girl void kiss(Boy boy) / kiss boy boy.kiss(); Well,這是對Girl最好的方法,只要想辦法賄賂了Girl的父母,并把Boy交給他。那么我們就可以輕松的和Girl來Kiss了??磥韼浊陚鹘y(tǒng)的父母之命還真是有用哦。至少Boy和Girl不用自己瞎忙乎了。 這就是IOC,將對象的創(chuàng)建和獲取提取到外部。由外部容器提供需要的組件。 我們知道好萊塢原則:“Do not call us, we will call you.” 意思就是,You, girlie, do not call the boy. We will feed you a boy。 我們還應(yīng)該知道依賴倒轉(zhuǎn)原則即 Dependence Inversion Princinple,DIP。Eric Gamma說,要面向抽象編程。面向接口編程是面向?qū)ο蟮暮诵?。組件應(yīng)該分為兩部分,即Service, 所提供功能的聲明Implementation, Service的實現(xiàn)好處是:多實現(xiàn)可以任意切換,防止 “everything depends on everything” 問題即具體依賴于具體。所以,我們的Boy應(yīng)該是實現(xiàn)Kissable接口。這樣一旦Girl不想kiss可惡的Boy的話,還可以kiss可愛的kitten和慈祥的grandmother。二、IOC的type IoC的Type指的是Girl得到Boy的幾種不同方式。我們逐一來說明。 IOC type 0:不用IOCpublic class Girl implements Servicable private Kissable kissable; public Girl() kissable = new Boy(); public void kissYourKissable() kissable.kiss(); Girl自己建立自己的Boy,很難更換,很難共享給別人,只能單獨使用,并負(fù)責(zé)完全的生命周期。 IOC type 1,先看代碼:public class Girl implements Servicable Kissable kissable; public void service(ServiceManager mgr) kissable = (Kissable) mgr.lookup(“kissable”); public void kissYourKissable() kissable.kiss(); 這種情況出現(xiàn)于Avalon Framework。一個組件實現(xiàn)了Servicable接口,就必須實現(xiàn)service方法,并傳入一個ServiceManager。其中會含有需要的其它組件。只需要在service方法中初始化需要的Boy。 另外,J2EE中從Context取得對象也屬于type 1。 它依賴于配置文件 IOC type 2:public class Girl private Kissable kissable; public void setKissable(Kissable kissable) this.kissable = kissable; public void kissYourKissable() kissable.kiss(); Type 2出現(xiàn)于Spring Framework,是通過JavaBean的set方法來將需要的Boy傳遞給Girl。它必須依賴于配置文件。 IOC type 3public class Girl private Kissable kissable; public Girl(Kissable kissable) this.kissable = kissable; public void kissYourKissable() kissable.kiss(); 這就是PicoContainer的組件 。通過構(gòu)造函數(shù)傳遞Boy給Girl。PicoContainer container = new DefaultPicoContainer();container.registerComponentImplementation(Boy.class);container.registerComponentImplementation(Girl.class);Girl girl = (Girl) container.getComponentInstance(Girl.class);girl.kissYourKissable(); 關(guān)于PicoContainer,作者后續(xù)文章會詳細(xì)介紹。作者語: Well,以上的這些理論部分有些已經(jīng)有了新的定義了。過些天我會再寫一些文章具體說明。比如,原來的三種type結(jié)構(gòu)現(xiàn)在已經(jīng)重新定義為依賴注射的許多層次。IoC很年輕,還在發(fā)展。伴隨著IOC的發(fā)展,AOP,COP,SOP等等都在不斷的發(fā)展。作為程序員,隨時關(guān)注著新的思想的發(fā)展是一件很輕松愉快的事情。有沒有人愿意和我一起探討學(xué)習(xí)共同進(jìn)步呀!參考資料 1 本文主要插圖及文字來源于ThoughtWorks公司的Jon Tirsn 與 Aslak Hellesy(PicoContainer的兩位開發(fā)者),2003年在Java Polis的演講PPT。有刪改。7、闡述Hibernate的延遲加載機(jī)制?Hibernate和延遲加載Hibernate對象關(guān)系映射提供了兩種對象初始化模式:延遲加載和非延遲加載。非延遲加載在加載時獲取對象本身以及它關(guān)聯(lián)的所有對象。這可能導(dǎo)致在獲取一個實例時,執(zhí)行成百上千的select語句。當(dāng)使用雙向關(guān)聯(lián)時,這個問題被放大,常常出現(xiàn)初始化請求時,整個數(shù)據(jù)庫都被載入。顯然檢查每個對象的關(guān)系,并手工刪除他們會費點事,但最終我們可能會因此丟失使用ORM工具的優(yōu)勢。一個明細(xì)的解決方式是使用hibernate提供的延遲載入機(jī)制。這種初始化策略在類成員被訪問時只載入它的一個對象的一對多和多對多關(guān)系。對開發(fā)人員來說,這種方式是透明的,并且只有最少數(shù)量的請求發(fā)生,這樣就獲得了最佳的性能。這種技術(shù)的一個缺點是延遲載入要求當(dāng)對象還在使用中時,Hibernate的Session必須保持打開狀態(tài)。當(dāng)嘗試通過DAO模式抽象持久層時,這會引起一個重要問題。為了充分地抽象持久層,所有的數(shù)據(jù)庫邏輯,包括打開、關(guān)閉Session都不能在應(yīng)用層出現(xiàn)。最常見的是,這些邏輯隱藏在DAO的實現(xiàn)類中??焖俸筒钜恍┑姆桨甘牵罕苊獠捎肈AO模式,在應(yīng)用層中包含數(shù)據(jù)連接的邏輯。這在小應(yīng)用中是可行的,但在大系統(tǒng)中,這會是一個設(shè)計缺陷,它損害了應(yīng)用的擴(kuò)展性。8、設(shè)置本用戶每小時第15,30,59分鐘都將目錄aint/info/log及目錄下所有文件大小記錄到日志文件/tmp/checkdir.log中。9、查看所有oracle用戶的進(jìn)程有哪些?10、列出目錄/usr/lib下所有文件,包括子目錄及子目錄下文件11、查找目錄/var/adm 下是否有文件messages, 如果有的話同時列出其文件大小,日期等屬性。三、編程題1. 一個字符串中可能包含a-z中的多個字符,字符也可能重復(fù),例如: String data = “ aabcdexmkduyruieiopxzkkkasdfjxjdsds”;寫一個程序,對于給定一個這樣的字符串
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司投資運作管理制度
- 礦山自營方案模板(3篇)
- 農(nóng)資物流倉儲管理制度
- 宣城-物業(yè)提升方案(3篇)
- 臨時車位租賃方案(3篇)
- 地基墳場處理方案(3篇)
- 基礎(chǔ)護(hù)理感染課件
- 民營醫(yī)院收錢方案(3篇)
- 租房合同協(xié)議書格式表格
- 商業(yè)綜合體場地租賃與商業(yè)活動組織服務(wù)合同
- 1例新冠病毒感染患者護(hù)理查房
- 【小升初】2023小學(xué)六年級人教版道德與法治升學(xué)畢業(yè)試卷及答案(時政+上下冊考點)04
- 全過程工程咨詢管理服務(wù)方案
- 四川大學(xué)宣傳介紹PPT
- 鋁合金門窗工程技術(shù)標(biāo)
- 主題教育蘇軾生平介紹人物經(jīng)歷等PPT模板(內(nèi)容完整)
- 經(jīng)閉孔無張力尿道中斷懸吊術(shù)
- 2023年安全監(jiān)督員述職報告范文
- 八年級英語下冊期末復(fù)習(xí)課件
- 電工基本知識培訓(xùn)資料課件
- 《園林花卉學(xué)》課后題及答案
評論
0/150
提交評論