java面試2

JAVA
38.   jsp內置對象  
1).HttpServletRequest類的Request對象
2).HttpServletResponse類的Respone對象
3).JspWriter類的out對象
4).HttpSession類的session對象
5).ServletContex類的application對象
6).PageContext類的PageContext對象
7).ServletConfig類的Config對象
8)Object類的Page(相當於this)對象
9)Exception
39.   Servlet中的主要方法有哪些?各有什麼作用?
init方法初始化Servlet
service方法是Servlet中的業務方法,根據請求方式調用不同的doXXX(doGet方法或doPost方法等)響應請求
destroy方法釋放Servlet資源
40.   接口Interface有什麼作用?使用接口主要有什麼好處?
1) .接口只是一個框架而沒有實現,因此在接口定義時不需要考慮接口中的方法如何實現;
2).利用接口可達到實現多繼承的目的;
3).可以在不暴露對象的類的前提下,暴露對象的編程接口.
41.   static和final修飾類,修飾方法和修飾屬性時表示什麼?
static可以修飾類,方法,屬性,分別表示靜態類,靜態方法,靜態屬性
final修飾類表示類是最終類,不可再被繼承
final修飾方法表示方法不可被子類重寫(override)
final修飾屬性表示屬性是常量
42.   自定義標籤有什麼作用?
方便JSP頁面代碼的維護,代碼重用
43.   數據庫連接對象使用以後在何處釋放?
try{}catch(){}finally{} 在finally{}中釋放數據庫連接對象
44.   異常對象如何分級捕獲?
最底層的異常對象(子類異常)放在最前面,越高層的異常對象(父類異常)越放在後面

45.   重載(overload)和重寫(override)是什麼?
重載(overload)爲類似功能的方法提供了統一的名稱,但是根據參數列型態的不同,而自動呼叫對應的方法
重寫(override)是子類繼承父類的方法,但是在子類中有不同的方法實現
46.   工作中使用過哪些設計模式?請舉2至3個例子並說明使用場景.
工廠模式,單態模式,Facade模式等等
47.   什麼時候釋放connection
應該在finally{}語句塊裏釋放connection;
finally{
if (conn != null)
conn.close();
}
48.   異常處理,如何處理多個異常?
異常處理的語句是try{}catch(){}finally{}
當有多個catch()語句,來處理多個異常的話,強調(如果一個異常是另個異常的子類的話,在並行處理的時候子類的異常不會抓到);
49.   可以在try語句模塊裏釋放connection嗎?可以.
50.   jsp標籤的作用和好處
答:主要用來顯示結果數據,用來溝通表示層和業務邏輯層,把頁面美工工作和程序編寫分開。
51.   statement對象有多少種,以及作用和用法
答:三種,分別爲statement,PreparedStatement,CallableStatement
作用是:建立了到特定數據庫的連接之後,就可用該連接發送 SQL 語句.
1).PreparedStatement對象有可能比 Statement 對象的效率更高,因爲它已被預編譯過並存放在那以供將來使用。
2).由方法 prepareCall 所創建。CallableStatement 對象用於執行 SQL
儲存程序 ─ 一組可通過名稱來調用(就象函數的調用那樣)的SQL 語句。CallableStatement 對象PreparedStatement 中繼承了用於處理 IN 參數的方法,而且還增加了用於處理 OUT 參數和INOUT 參數的方法。
特別強調:如果數據庫支持已存儲過程,則可從 JDBC 中調用它們,CallableStatement可調用存儲過程語法爲:
{call procedure_name[(?, ?, . . .)]}
52.   Final,finalizer,finally區別和各自的用法
final—修飾符
如果一個類被聲明爲final,意味着它不能再派生出新的子類,不能作爲父類被繼承。因此一個類不能既被聲明爲 abstract的,又被聲明爲final的。
將變量或方法聲明爲final,可以保證它們在使用中不被改變。被聲明爲final的變量必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。
被聲明爲final的方法也同樣只能使用,不能重載。
finally—程序控制字
在異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)。例如下面語句
Try{
語句1
}
catch(){
語句2
}
finally{
語句3
}
語句3始終都會執行
finalize—方法名
Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
53.   equals,toString,hasCode三個方法
Equals:比較的兩個對象不願是同一對象,你就應該實現equals方法,讓對象用你認爲相等的條件來進行比較.
toString: 返回代表該對象的一個字串。一般的,toString方法返回該對象‘文字描述’的字串。返回的結果(即字串)應該是簡明且易讀的信息。建議所有繼承類覆蓋該方法
hasCode:(雜湊碼)會根據對象型別、個數及內容等計算出所對應的內存識別值,相同對象與內容會計算出相同的hasCode。
54.   什麼時候會使用hasCode
hascode是用hashTable的時候爲了檢索才用的
55.   Hashtable和hashmap的區別  
共同點:都屬於Map接口的類,實現了將惟一鍵映射到特定的值上。
區別:(1)HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。
(2)Hashtable 類似於 HashMap,但是不允許 null 鍵和 null 值。因爲它是同步的它比HashMap 慢。線程安全性比較好
56.   問:舉例介紹java中有哪些集合?
答:主要有LinkedList,ArrayList,Vector等
下面是詳細
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
57.   ArrayList,Vector,LinkedList的區別
答:      
(1) ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢。
(2) Vector由於使用了synchronized方法(線程安全),通常性能上較ArrayList差
(3) LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或後向遍歷,但是插入數據時只需要記錄本項的前後項即可,所以插入速度較快。
58.   說說抽象類和接口的區別。
(1)抽象類可以提供某些方法的實現。如果向抽象類中加入一個新的具體的方法,那麼所有的子類一下子就得到了這個方法。接口做不到這一點!(這也許是抽象類的唯一優點)。
(2)因java的單根結構限制,子類只能實現一個抽象類類型,而接口類型則無此限制。這使抽象類作爲類型定義工具的效能落後於接口。接口是定義混合類型(實現多重繼承)的理想工具。
(3)從代碼重構的角度上講,將一個具體類從構成一個接口類型實現起來更容易。
接口可以實現接口。抽象類可以實現(implements)接口,抽象類可繼承實體類,但前提是實體類必須有明確的構造函數。
59.   Severlet的認識,有那些方法
    Severlet的生命週期:
web容器加載servlet,生命週期開始。通過調用servlet的init()方法進行servlet的初始化。通過調用service()方法實現,根據請求的不同調用不同的do***()方法。結束服務,web容器調用servlet的destroy()方法。
       主要方法:
       public void init(ServletConfig config)
public ServletConfig getServletConfig()
public String getServletInfo()
public void service(ServletRequest request,ServletResponse response)
public void destroy()
60.   如何做一個隊列?
隊列是設計程序中常用的一種數據結構。它類似日常生活中的排隊現象,採用一種被稱爲“先進先出”(LIFO)的存儲結構。數據元素只能從隊尾進入,從隊首取出。在隊列中,數據元素可以任意增減,但數據元素的次序不會改變。每當有數據元素從隊列中被取出,後面的數據元素依次向前移動一位。所以,任何時候從隊列中讀到的都是隊首的數據。
    Vector類是JAVA中專門負責處理對象元素有序存儲和任意增刪的類,因此,用Vector可以快速實現JAVA的隊列類。
方法說明
enq(x) 向隊列插入一個值爲x的元素;
deq() 從隊列刪除一個元素;
front() 從隊列中讀一個元素,但隊列保持不變;
empty() 判斷隊列是否爲空,空則返回真;
clear() 清空隊列;
search(x) 查找距隊首最近的元素的位置,若不存在,返回-1
其他
61.   條件覆蓋、分支覆蓋等屬於哪種測試
62.   對CMM五個級別的解釋。
(1)初始級。軟件過程的特點是雜亂無章,有時甚至混亂,幾乎沒有明確定義的步驟,成功完全依賴個人努力和英雄式核心人物,管理是反應式(消防式)。
(2)可重複級。建立了基本的項目管理過程來跟蹤成本、進度和功能特性,制定了必要的過程紀律,能重複早先類似應用項目取得成功。
(3)確定級。管理和工程的軟件過程已文件化、標準化,並綜合成整個軟件開發組織的標準軟件過程。所有項目都採用根據實際情況修改後得到的標準軟件過程來發展和維護軟件。
(4)管理級。制定了軟件過程和產品質量詳細的度量標準。軟件過程和產品的質量都被開發組織的成員所理解和控制。
(5)優化級。加強了定量分析,通過來自過程質量反饋和來自新觀念、新科技的反饋使過程能不斷持續地改進。
跳躍無限
易慰懷
Jdbc 與 odbc的區別
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章