


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java 面試題精華1 、面向?qū)ο蟮奶卣饔心男┓矫?. 抽象: 抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面, 以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的 方面。 抽象并不打算了解全部問題, 而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包 括兩個(gè)方面,一是過程抽象,二是數(shù)據(jù)抽象。2. 繼承:繼承是一種連接類的層次模型, 并且允許和鼓勵(lì)類的重用, 它提供了一種明確表述共性的方 法。對(duì)象的一個(gè)新類可以從現(xiàn)有的類中派生, 這個(gè)過程稱為類繼承。 新類繼承了原始類的特 性,新類稱為原始類的派生類(子類) ,而原始類稱為新類的基類(父類) 。派生類可以從它 的基類那里繼承方法和實(shí)例變量,并且類可以修改或增加新的
2、方法使之更適合特殊的需要。3. 封裝:封裝是把過程和數(shù)據(jù)包圍起來, 對(duì)數(shù)據(jù)的訪問只能通過已定義的界面。 面向?qū)ο笥?jì)算始于這 個(gè)基本概念, 即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、 封裝的對(duì)象, 這些對(duì)象通過一個(gè)受 保護(hù)的接口訪問其他對(duì)象。4. 多態(tài)性: 多態(tài)性是指允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài) 性。多態(tài)性語(yǔ)言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程序函數(shù) 同名問題。2 、String 是最基本的數(shù)據(jù)類型嗎 ?基本數(shù)據(jù)類型包括 byte 、 int 、char 、long 、 float 、double 、 boolean 和 short
3、。 java.lang.String 類是 final 類型的,因此不可以繼承這個(gè)類、 不能修改這個(gè)類。為了提高 效率節(jié)省空間,我們應(yīng)該用 StringBuffer 類3 、String 和 StringBuffer 的區(qū)別JAVA 平臺(tái)提供了兩個(gè)類: String 和 StringBuffer ,它們可以儲(chǔ)存和操作字符串,即包含 多個(gè)字符的字符數(shù)據(jù)。 這個(gè) String 類提供了數(shù)值不可改變的字符串。 而這個(gè) StringBuffer 類提供的字符串進(jìn)行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時(shí)候你就可以使用 StringBuffer 典型地,你可以使用 StringBuffers 來動(dòng)態(tài)構(gòu)造字符數(shù)據(jù)
4、。4 、運(yùn)行時(shí)異常與一般異常有何異同?異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中 可能遇到的異常,是一種常見運(yùn)行錯(cuò)誤。 java 編譯器要求方法必須聲明拋出可能發(fā)生的非 運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。5 、說出 Servlet 的生命周期,并說出 Servlet 和 CGI 的區(qū)別。Servlet 被服務(wù)器實(shí)例化后, 容器運(yùn)行其 init 方法,請(qǐng)求到達(dá)時(shí)運(yùn)行其 service 方法,service 方法自動(dòng)派遣運(yùn)行與請(qǐng)求對(duì)應(yīng)的 doXXX 方法( doGet , doPost )等,當(dāng)服務(wù)器決定將實(shí) 例銷毀的時(shí)候調(diào)用其 destr
5、oy 方法。與 cgi 的區(qū)別在于 servlet 處于服務(wù)器進(jìn)程中, 它通過多線程方式運(yùn)行其 service 方法, 一 個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求,并且其實(shí)例一般不會(huì)銷毀,而 CGI 對(duì)每個(gè)請(qǐng)求都產(chǎn)生新的進(jìn) 程,服務(wù)完成后就銷毀,所以效率上低于 servlet 。6 、說出 ArrayList,Vector , LinkedList 的存儲(chǔ)性能和特性ArrayList 和 Vector 都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便 增加和插入元素, 它們都允許直接按序號(hào)索引元素, 但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi) 存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢, Vector 由于使用
6、了 synchronized 方法(線程安 全),通常性能上較 ArrayList 差, 而 LinkedList 使用雙向鏈表實(shí)現(xiàn)存儲(chǔ), 按序號(hào)索引數(shù)據(jù) 需要進(jìn)行前向或后向遍歷, 但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可, 所以插入速度較 快。7 、 final, finally, finalize 的區(qū)別。final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally 是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize 是 Object 類的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法, 可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如
7、關(guān)閉文件等。8 、 Overload 和 Override 的區(qū)別。 Overloaded 的方法是否可以改變返回值的類型 ? 方法的重寫 Overriding 和重載 Overloading 是 Java 多態(tài)性的不同表現(xiàn)。重寫 Overriding 是父類與子類之間多態(tài)性的一種表現(xiàn), 重載 Overloading 是一個(gè)類中多態(tài)性的 一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding) 。子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對(duì)它而言,父類中的 定義如同被 屏蔽 了。如果在一個(gè)類中定義了多個(gè)同名的方法, 它們或有不同的參數(shù)個(gè)數(shù)或
8、有不同的參數(shù)類型, 則稱為方法的重載 (Overloading) 。Overloaded 的方法是可以改變返 回值的類型。9 、 abstract class 和 interface 有什么區(qū)別 ? 聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類( abstract class ),它用于要?jiǎng)?chuàng)建一個(gè)體 現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況,不能創(chuàng)建 abstract 類的實(shí)例,然而可以創(chuàng)建一個(gè)變量,其類型是一個(gè)抽象類,并讓它指向具體子類 的一個(gè)實(shí)例,不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。 Abstract 類的子類為它們父類中的所 有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類為
9、。取而代之,在子類中實(shí)現(xiàn)該方法。 知道其行 為的其它類可以在類中實(shí)現(xiàn)這些方法。接口( interface )是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實(shí) 現(xiàn)這樣的接口而獲得。 接口中的所有方法都是抽象的, 沒有一個(gè)有程序體。 接口只可以定義 static final 成員變量。 接口的實(shí)現(xiàn)與子類相似, 除了該實(shí)現(xiàn)類不能從接口定義中繼承行為。 當(dāng)類實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí) 現(xiàn)了該接口的類的任何對(duì)象上調(diào)用接口的方法。 由于有抽象類, 它允許使用接口名作為引用 變量的類型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)
10、換, instanceof 運(yùn)算符可以用來決定某對(duì)象的類是否實(shí)現(xiàn)了接口。10 、 forward 和 redirect 的區(qū)別forward 是服務(wù)器請(qǐng)求資源, 服務(wù)器直接訪問目標(biāo)地址的 URL ,把那個(gè) URL 的響應(yīng)內(nèi)容讀 取過來,然后把這些內(nèi)容再發(fā)給瀏覽器, 瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來的, 所以它的地址欄中還是原來的地址。redirect 就是服務(wù)端根據(jù)邏輯 , 發(fā)送一個(gè)狀態(tài)碼 ,告訴瀏覽器重新去請(qǐng)求那個(gè)地址, 一般來說 瀏覽器會(huì)用剛才請(qǐng)求的所有參數(shù)重新請(qǐng)求,所以 session,request 參數(shù)都可以獲取。11 、 GC 是什么 ? 為什么要有 GC?GC 是垃圾收
11、集的意思( Gabage Collection ) ,內(nèi)存處理是編程人員容易出現(xiàn)問題的 地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰, Java 提供的 GC 功 能可以自動(dòng)監(jiān)測(cè)對(duì)象是否超過作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的, Java 語(yǔ)言沒有提供釋 放已分配內(nèi)存的顯示操作方法。12 、設(shè)計(jì) 4 個(gè)線程,其中兩個(gè)線程每次對(duì) j 增加 1 ,另外兩個(gè)線程對(duì) j 每次減少 1 。寫出程 序。以下程序使用內(nèi)部類實(shí)現(xiàn)線程,對(duì) j 增減的時(shí)候沒有考慮順序問題。public class ThreadTest1private int j;public static void main(Str
12、ing args)ThreadTest1 tt=new ThreadTest1();Inc inc=tt.new Inc();Dec dec=tt.new Dec();for(int i=0;i2;i+)Thread t=new Thread(inc);t.start();t=new Thread(dec);t.start();private synchronized void inc()j+;System.out.println(Thread.currentThread().getName()+-inc:+j);private synchronized void dec()j-;System
13、.out.println(Thread.currentThread().getName()+-dec:+j);class Inc implements Runnablepublic void run()for(int i=0;i100;i+)inc();class Dec implements Runnablepublic void run()for(int i=0;i100;i+)dec();13 、說出數(shù)據(jù)連接池的工作機(jī)制是什么 ?J2EE 服務(wù)器啟動(dòng)時(shí)會(huì)建立一定數(shù)量的池連接,并一直維持不少于此數(shù)目的池連接??蛻舳?程序需要連接時(shí), 池驅(qū)動(dòng)程序會(huì)返回一個(gè)未使用的池連接并將其標(biāo)記為忙。 如果
14、當(dāng)前沒有空 閑連接, 池驅(qū)動(dòng)程序就新建一定數(shù)量的連接, 新建連接的數(shù)量有配置參數(shù)決定。 當(dāng)使用的池 連接調(diào)用完成后,池驅(qū)動(dòng)程序?qū)⒋诉B接標(biāo)記為空閑,其他調(diào)用就可以使用這個(gè)連接。14 、當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回 變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞 ?是值傳遞。 Java 編程語(yǔ)言只有值傳遞參數(shù)。當(dāng)一個(gè)對(duì)象實(shí)例作為一個(gè)參數(shù)被傳遞到方法中 時(shí),參數(shù)的值就是對(duì)該對(duì)象的引用。 對(duì)象的內(nèi)容可以在被調(diào)用的方法中改變, 但對(duì)象的引用 是永遠(yuǎn)不會(huì)改變的。15 、編程題 : 寫一個(gè) Singleton 出來 。Singleton 模式主要作用是保證在 J
15、ava 應(yīng)用程序中,一個(gè)類 Class 只有一個(gè)實(shí)例存在。 一般 Singleton 模式通常有幾種種形式 :第一種形式 : 定義一個(gè)類,它的構(gòu)造函數(shù)為 private 的,它有一個(gè) static 的 private 的該 類變量,在類初始化時(shí)實(shí)例化,通過一個(gè) public 的 getInstance 方法獲取對(duì)它的引用 , 繼 而調(diào)用其中的方法。public class Singleton private Singleton()/ 在自己內(nèi)部定義自己一個(gè)實(shí)例,是不是很奇怪?/ 注意這是 private 只供內(nèi)部調(diào)用private static Singleton instance = new
16、 Singleton();/ 這里提供了一個(gè)供外部訪問本 class 的靜態(tài)方法,可以直接訪問public static Singleton getInstance() return instance;第二種形式 :public class Singleton private static Singleton instance = null;public static synchronized Singleton getInstance() / 這個(gè)方法比上面有所改進(jìn),不用每次都進(jìn)行生成對(duì)象,只是第一次/ 使用時(shí)生成實(shí)例,提高了效率!if (instance=null)instance new
17、 Singleton();return instance;其他形式 :定義一個(gè)類,它的構(gòu)造函數(shù)為 private 的,所有方法為 static 的。 一般認(rèn)為第一種形式要更加安全些16 、 Java 中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用。當(dāng) JAVA 程序違反了 JAVA 的語(yǔ)義規(guī)則時(shí), JAVA 虛擬機(jī)就會(huì)將發(fā)生的錯(cuò)誤表示為一個(gè)異常。 違反語(yǔ)義規(guī)則包括 2 種情況。一種是 JAVA 類庫(kù)內(nèi)置的語(yǔ)義檢查。例如數(shù)組下標(biāo)越界,會(huì)引發(fā) IndexOutOfBoundsException; 訪問 null 的對(duì)象時(shí)會(huì)引發(fā) NullPointerException 。另 一種情況就是 JAVA 允許程序員擴(kuò)
18、展這種語(yǔ)義檢查, 程序員可以創(chuàng)建自己的異常, 并自由選 擇在何時(shí)用 throw 關(guān)鍵字引發(fā)異常。所有的異常都是 java.lang.Thowable 的子類。17 、 JSP 的內(nèi)置對(duì)象及方法。request 表示 HttpServletRequest 對(duì)象。它包含了有關(guān)瀏覽器請(qǐng)求的信息,并且提供了 幾個(gè)用于獲取 cookie, header , 和 session 數(shù)據(jù)的有用的方法。response 表示 HttpServletResponse對(duì)象, 并提供了幾個(gè)用于設(shè)置送回瀏覽器的響應(yīng)的方法(如 cookies, 頭信息等)out 對(duì)象是 javax.jsp.JspWriter 的一個(gè)實(shí)例
19、,并提供了幾個(gè)方法使你能用于向?yàn)g覽器 回送輸出結(jié)果。pageContext 表示一個(gè) javax.servlet.jsp.PageContext 對(duì)象。它是用于方便存取各 種范圍的名字空間、 servlet 相關(guān)的對(duì)象的 API ,并且包裝了通用的 servlet 相關(guān)功能的方 法。session 表示一個(gè)請(qǐng)求的 javax.servlet.http.HttpSession對(duì)象。 Session 可以存貯用戶的狀態(tài)信息applicaton 表示一個(gè) javax.servle.ServletContext 對(duì)象。這有助于查找有關(guān) servlet 引擎和 servlet 環(huán)境的信息config 表
20、示一個(gè) javax.servlet.ServletConfig對(duì)象。 該對(duì)象用于存取 servlet 實(shí)例的初始化參數(shù)。page 表示從該頁(yè)面產(chǎn)生的一個(gè) servlet 實(shí)例18 、 servlet 的生命周期web 容器加載 servlet ,生命周期開始。通過調(diào)用 servlet 的 init() 方法進(jìn)行 servlet 的初 始化。通過調(diào)用 service() 方法實(shí)現(xiàn), 根據(jù)請(qǐng)求的不同調(diào)用不同的 do*() 方法。 結(jié)束服務(wù), web 容器調(diào)用 servlet 的 destroy() 方法。19 、 J2EE 是技術(shù)還是平臺(tái)還是框架?J2EE 本身是一個(gè)標(biāo)準(zhǔn),一個(gè)為企業(yè)分布式應(yīng)用的開
21、發(fā)提供的標(biāo)準(zhǔn)平臺(tái)。 J2EE 也是一個(gè) 框架,包括 JDBC 、JNDI 、 JMS 、RMI 、EJB、JTA 等技術(shù)。20 、我們?cè)?web 應(yīng)用開發(fā)過程中經(jīng)常遇到輸出某種編碼的字符,如 iso8859-1 等,如何 輸出一個(gè)某種編碼的字符串?Public String translate (String str) String tempStr = ; try tempStr = new String(str .getBytes(ISO-8859-1), GBK);tempStr = tempStr .trim();catch (Exception e) System.err .print
22、ln(e.getMessage();return tempStr;20 、 MVC 的各個(gè)部分都有那些技術(shù)來實(shí)現(xiàn) ?如何實(shí)現(xiàn) ?MVC 是 Model View Controller 的簡(jiǎn)寫。 Model 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過 JavaBean ,EJB 組件實(shí)現(xiàn)), View 是應(yīng)用的表示面 (由 JSP 頁(yè)面產(chǎn)生),Controller 是提供應(yīng)用的處理過程控制(一般是一個(gè) Servlet ),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理 過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。21 、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動(dòng)通 知虛擬機(jī)進(jìn)
23、行垃圾回收?對(duì)于 GC 來說, 當(dāng)程序員創(chuàng)建對(duì)象時(shí), GC 就開始監(jiān)控這個(gè)對(duì)象的地址、 大小以及使用情況。 通常, GC 采用有向圖的方式記錄和管理堆 (heap) 中的所有對(duì)象。通過這種方式確定哪些 對(duì)象是可達(dá)的,哪些對(duì)象是 不可達(dá)的 。當(dāng) GC 確定一些對(duì)象為 不可達(dá)時(shí),GC 就有責(zé) 任回收這些內(nèi)存空間。 可以。程序員可以手動(dòng)執(zhí)行 System.gc() ,通知 GC 運(yùn)行,但是 Java 語(yǔ)言規(guī)范并不保證 GC 一定會(huì)執(zhí)行。22 、 jsp 有哪些動(dòng)作 ?作用分別是什么 ?JSP 共有 以下 6 種基本 動(dòng) 作 jsp:include :在 頁(yè) 面被 請(qǐng) 求的 時(shí)候 引入 一 個(gè)文 件
24、。 jsp:useBean :尋找或者實(shí)例化一個(gè) JavaBean 。 jsp:setProperty :設(shè)置 JavaBean 的 屬性。 jsp:getProperty :輸出某個(gè) JavaBean 的屬性。 jsp:forward :把請(qǐng)求轉(zhuǎn)到一個(gè) 新的頁(yè)面。 jsp:plugin :根據(jù)瀏覽器類型為 Java 插件生成 OBJECT 或 EMBED 標(biāo)記。23 、 STRUTS 的應(yīng)用 (如 STRUTS 架構(gòu) )Struts 是采用 Java Servlet/JavaServer Pages 技術(shù),開發(fā) Web 應(yīng)用程序的開放源碼的framework 。 采用 Struts 能開發(fā)出
25、基于 MVC(Model-View-Controller) 設(shè)計(jì)模式的應(yīng)用 構(gòu)架。 Struts 有如下的主要功能: 一.包含一個(gè) controller servlet ,能將用戶的請(qǐng)求發(fā)送到相應(yīng)的 Action 對(duì)象。 二 .JSP 自由 tag 庫(kù),并且在 controller servlet 中提供關(guān)聯(lián)支 持,幫助開發(fā)員創(chuàng)建交互式表單應(yīng)用。三. 提供了一系列實(shí)用對(duì)象: XML 處理、通過 Javareflection APIs 自動(dòng)處理 JavaBeans 屬性、國(guó)際化的提示和消息。24 、 Jdo 是什么 ?JDO 是 Java 對(duì)象持久化的新的規(guī)范, 為 java data obje
26、ct 的簡(jiǎn)稱 ,也是一個(gè)用于存取某種 數(shù)據(jù)倉(cāng)庫(kù)中的對(duì)象的標(biāo)準(zhǔn)化 API 。JDO 提供了透明的對(duì)象存儲(chǔ),因此對(duì)開發(fā)人員來說,存 儲(chǔ)數(shù)據(jù)對(duì)象完全不需要額外的代碼(如 JDBC API 的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移 到 JDO 產(chǎn)品提供商身上, 使開發(fā)人員解脫出來, 從而集中時(shí)間和精力在業(yè)務(wù)邏輯上。 另外, JDO 很靈活,因?yàn)樗梢栽谌魏螖?shù)據(jù)底層上運(yùn)行。 JDBC 只是面向關(guān)系數(shù)據(jù)庫(kù)( RDBMS ) JDO 更通用,提供到任何數(shù)據(jù)底層的存儲(chǔ)功能,比如關(guān)系數(shù)據(jù)庫(kù)、文件、 XML 以及對(duì)象數(shù)據(jù)庫(kù)( ODBMS )等等,使得應(yīng)用可移植性更強(qiáng)。25, HashMap 和 Hashtable 的
27、區(qū)別。都屬于 Map 接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。HashMap 類沒有分類或者排序。它允許一個(gè) null 鍵和多個(gè) null 值。Hashtable 類似于 HashMap ,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因?yàn)樗?是同步的。26, Overload 和 Override 的區(qū)別。 Overloaded 的方法是否可以改變返回值的類型 ? 方法的重寫 Overriding 和重載 Overloading 是 Java 多態(tài)性的不同表現(xiàn)。重寫 Overriding 是父類與子類之間多態(tài)性的一種表現(xiàn),重載 Overloading 是一個(gè)類中多態(tài)
28、性的一種表現(xiàn)。如 果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding) 。 子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對(duì)它而言,父類中的定義如同被屏蔽 了。如果在一個(gè)類中定義了多個(gè)同名的方法, 它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型, 則稱為方法的重載 (Overloading) 。 Overloaded 的方法是可以改變返回值的類型。27, Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢? 是用=還是 equals()?它們有何區(qū)別 ?Set 里的元素是不能重復(fù)的,那么用iterator()方法來區(qū)分重復(fù)與否。 Equals()是判讀
29、兩個(gè)Set 是否相等。Equals()和 =方法決定引用值是否指向同一對(duì)象 equals()在類中被覆蓋, 為的是當(dāng)兩個(gè)分 離的對(duì)象的內(nèi)容和類型相配的話,返回真值。28, abstract class 和 interface 有什么區(qū)別 ?聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類( abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況。不能創(chuàng)建 abstract 類的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類型是一個(gè)抽象類,并讓它指向具體子類的 一個(gè)實(shí)例。 不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。 Abstract 類的子類為它們父類中的所有抽
30、 象方法提供實(shí)現(xiàn),否則它們也是抽象類為。取而代之,在子類中實(shí)現(xiàn)該方法。知道其行為的 其它類可以在類中實(shí)現(xiàn)這些方法。接口( interface )是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過 實(shí)現(xiàn)這樣的接口而獲得。 接口中的所有方法都是抽象的, 沒有一個(gè)有程序體。 接口只可以定 義 static final 成員變量。 接口的實(shí)現(xiàn)與子類相似, 除了該實(shí)現(xiàn)類不能從接口定義中繼承行為。 當(dāng)類實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí) 現(xiàn)了該接口的類的任何對(duì)象上調(diào)用接口的方法。 由于有抽象類, 它允許使用接口名作為引用 變量的類型。通常的動(dòng)態(tài)聯(lián)編將生效
31、。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換, instanceof 運(yùn)算符可以用來決定某對(duì)象的類是否實(shí)現(xiàn)了接口。29、 ArrayList 和 Vector 的區(qū)別 ,HashMap 和 Hashtable 的區(qū)別 答:就 ArrayList 與 Vector 主要從二方面來說 .一.同步性: Vector 是線程安全的, 也就是說是同步的, 而ArrayList 是線程序不安全的, 不是同步的二.數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí) ,Vector 默認(rèn)增長(zhǎng)為原來一培,而 ArrayList 卻是原來的一半 就 HashMap 與 HashTable 主要從三方面來說。一 .歷史原因: Hashtable
32、是基于陳舊的 Dictionary 類的,HashMap 是 Java 1.2 引進(jìn)的 Map 接口的一個(gè)實(shí)現(xiàn)二.同步性: Hashtable是線程安全的, 也就是說是同步的, 而 HashMap是線程序不安全 的,不是同步的三 . 值:只有 HashMap 可以讓你將空值作為一個(gè)表的條目的 key 或 valueJsp方面1、jsp 有哪些內(nèi)置對(duì)象 ?作用分別是什么 ? 答:JSP共有以下 9種基本內(nèi)置組件(可與 ASP的 6種內(nèi)部組件相對(duì)應(yīng)) : request 用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來自 GET/POST 請(qǐng)求的參數(shù) response 網(wǎng)頁(yè)傳回用戶端的回應(yīng) pageContext 網(wǎng)頁(yè)
33、的屬性是在這里管理 session 與請(qǐng)求有關(guān)的會(huì)話期 application servlet 正在執(zhí)行的內(nèi)容 out 用來傳送回應(yīng)的輸出 config servlet 的構(gòu)架部件 page JSP 網(wǎng)頁(yè)本身 exception 針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外2、jsp 有哪些動(dòng)作 ?作用分別是什么 ? 答:JSP共有以下 6 種基本動(dòng)作 jsp:include :在頁(yè)面被請(qǐng)求的時(shí)候引入一個(gè)文件。 Jsp:useBean:尋找或者實(shí)例化一個(gè) JavaBean。 Jsp:setProperty:設(shè)置 JavaBean 的屬性。 Jsp:getProperty:輸出某個(gè) JavaBean 的屬性。 J
34、sp:forward :把請(qǐng)求轉(zhuǎn)到一個(gè)新的頁(yè)面。Jsp:plugin:根據(jù)瀏覽器類型為 Java 插件生成 OBJECT 或 EMBED 標(biāo)記3、JSP 中動(dòng)態(tài) INCLUDE 與靜態(tài) INCLUDE 的區(qū)別? 答:動(dòng)態(tài) INCLUDE 用 jsp:include 動(dòng)作實(shí)現(xiàn) 它總是會(huì)檢查所含文件中的變化,適合用于包 含動(dòng)態(tài)頁(yè)面,并且可以帶參數(shù)靜態(tài) INCLUDE 用 include 偽碼實(shí)現(xiàn) ,定不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁(yè)面 Servlet 方面1、說一說 Servlet 的生命周期 ?答 :servlet 有良好的生存期的定義,包括加載和實(shí)例化、初始化、處理請(qǐng)求以及服務(wù)結(jié)束。
35、這個(gè)生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy 方法表達(dá)。2、JAVA SERVLET API 中 forward() 與 redirect()的區(qū)別?答 :前者僅是容器中控制權(quán)的轉(zhuǎn)向, 在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣, 從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。 所以,前者更加高效,在前者可以滿足需要時(shí),盡 量使用 forward() 方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要 跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用s
36、endRedirect()方法。3、Servlet 的基本架構(gòu)public class ServletName extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcepti
37、on Jdbc、 Jdo 方面1、可能會(huì)讓你寫一段 Jdbc 連 Oracle 的程序 ,并實(shí)現(xiàn)數(shù)據(jù)查詢 . 答:程序如下:package hello.ant;import java.sql.*;public class jdbcString dbUrl=jdbc:oracle:thin::1521:orcl;String theUser=admin;String thePw=manager;Connection c=null;Statement conn;ResultSet rs=null;public jdbc()Try Class.forName(oracle.jdbc
38、.driver.OracleDriver).newInstance(); c = DriverManager.getConnection(dbUrl,theUser,thePw);conn=c.createStatement();catch(Exception e)e.printStackTrace();public boolean executeUpdate(String sql)tryconn.executeUpdate(sql); return true;catch (SQLException e)e.printStackTrace();return false;public Resul
39、tSet executeQuery(String sql)rs=null;tryrs=conn.executeQuery(sql);catch (SQLException e)e.printStackTrace();return rs;public void close()tryconn.close();c.close();catch (Exception e)e.printStackTrace();public static void main(String args)ResultSet rs;jdbc conn = new jdbc();rs=conn.executeQuery(select * from test); trywhil
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年哈爾濱傳媒職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)帶答案
- 第二章第三節(jié)《計(jì)算機(jī)與計(jì)算器-順序程序設(shè)計(jì)》教學(xué)設(shè)計(jì) 2023-2024學(xué)河大音像版(2020)初中信息技術(shù)八年級(jí)下冊(cè)
- 第五章 一元一次方程 數(shù)學(xué)活動(dòng)教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版數(shù)學(xué)七年級(jí)上冊(cè)
- 山東省泰安市2023-2024學(xué)年高三上學(xué)期11月期中考試地理試題(解析版)
- 人教版七年級(jí)歷史與社會(huì)下冊(cè)7.3生活的故事-生活的時(shí)代印記教學(xué)設(shè)計(jì)
- 江蘇省宿遷市泗陽(yáng)縣2023-2024學(xué)高二上學(xué)期期中調(diào)研地理試卷(解析版)
- 2025年廣西幼兒師范高等??茖W(xué)校單招職業(yè)適應(yīng)性測(cè)試題庫(kù)匯編
- 第二章 地球的面貌整章教學(xué)設(shè)計(jì)2023-2024學(xué)年湘教版地理七年級(jí)上冊(cè)
- 2025年河北機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)學(xué)生專用
- 2025至2030年中國(guó)無(wú)煙蠟燭數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 追覓入職測(cè)評(píng)題庫(kù)
- 寧德時(shí)代入職測(cè)評(píng)試題答案
- 干粉滅火器的使用方法課件
- 2024年廣東省2024屆高三高考模擬測(cè)試(一)一模 化學(xué)試卷(含答案)
- 半導(dǎo)體行業(yè)質(zhì)量管理與質(zhì)量控制
- 2024年山東省春季高考技能考試汽車專業(yè)試題庫(kù)-下(判斷題匯總)
- 部編版道德與法治二年級(jí)下冊(cè)第三單元 綠色小衛(wèi)士 單元作業(yè)設(shè)計(jì)
- 戲曲鑒賞完整版剖析課件
- 熱化學(xué)儲(chǔ)熱耦合高溫相變儲(chǔ)熱多物理場(chǎng)協(xié)同調(diào)控機(jī)理
- 趙匡胤:中國(guó)北宋時(shí)期的開國(guó)皇帝2
- 中國(guó)紡織服裝制造業(yè)年度授信政策指引研究報(bào)告
評(píng)論
0/150
提交評(píng)論