1. 程式人生 > 實用技巧 >java題庫題解1

java題庫題解1

一、stack資料結構適用於"資料必須以相反的順序儲存然後檢索" 。

原因:stack資料結構先進後出,Queue佇列先進先出。

二、

三、"=="對於基本資料型別來說比較的是值,對於引用型別來說比較的是引用指向的地址;

Object中的equals()與“==”作用相同,但是String類重寫了toStrign()方法,比較的是內容

四、Java中的位運算子:

>>表示右移,如果該數為正,則高位補0,若為負數,則高位補1;

>>>表示無符號右移,也叫邏輯右移,即若該數為正,則高位補0,而若該數為負數,則右移後高位同樣補0。

五、PreraredStatment中,"?"代表佔位符,sql語句是確定的,一個佔位符只能對應一個值。

六、String.valueOf(myChar); //是將char型別的myChar轉化成String型別

public static String toString(char c) { return String.valueOf(c); }
public static String valueOf(char c) { char data[] = {c};  return new String(data, true); }

七、Servlet的生命週期

1.載入:容器通過類載入器使用Servlet類對應的檔案來載入Servlet。 2.建立:通過呼叫Servlet的建構函式來建立一個Servlet例項。
3.初始化:通過呼叫Servlet的init()方法來完成初始化工作,這個方法是在Servlet已經被建立,但在向客戶端提供服務之前呼叫。 4.處理客戶請求:Servlet建立後就可以處理請求,當有新的客戶端請求時,Web容器都會建立一個新的執行緒來處理該請求。接著呼叫Servlet的Service()方法來響應客戶端請求(Service方***根據請求的method屬性來呼叫doGet()和doPost())。 5.解除安裝:容器在解除安裝Servlet之前需要呼叫destroy()方法,讓Servlet釋放其佔用的資源。

八、

內建物件

request request 物件是 javax.servlet.httpServletRequest型別的物件。 該物件代表了客戶端的請求資訊,主要用於接受通過HTTP協議傳送到伺服器的資料。(包括頭資訊、系統資訊、請求方式以及請求引數等)。request物件的作用域為一次請求。
response response 代表的是對客戶端的響應,主要是將JSP容器處理過的物件傳回到客戶端。response物件也具有作用域,它只在JSP頁面內有效。 session 1.什麼是session:從一個客戶開啟瀏覽器並連線到伺服器開始,到客戶關閉瀏覽器離開這個伺服器結束,被稱為一個會話。當一個客戶訪問一個伺服器時,可能會在這個伺服器的幾個頁面之間反覆連線,反覆重新整理一個頁面,伺服器應當通過某種辦法知道這是同一個客戶,這就需要session物件。 2.session物件的ID:當一個客戶首次訪問伺服器上的一個JSP頁面時,JSP引擎產生一個session物件,同時分配一個String型別的ID號,JSP引擎同時將這個ID號傳送到客戶端,存放在Cookie中,這樣session物件和客戶之間就建立了一一對應的關係。當客戶再訪問連線該伺服器的其他頁面時,不再分配給客戶新的session物件,直到客戶關閉瀏覽器後,伺服器端該客戶的session物件才取消,並且和客戶的會話對應關係消失。當客戶重新開啟瀏覽器再連線到該伺服器時,伺服器為該客戶再建立一個新的session物件。 3.session物件存在一定時間過期問題,所以存在session中的名值對會在一定時間後失去,可以通過更改session有效時間來避免這種情況。同時程式設計時儘量避免將大量有效資訊儲存在session中,request是一個不錯的替代物件。 application 1.什麼是application: 伺服器啟動後就產生了這個application物件,當客戶在所訪問的網站的各個頁面之間瀏覽時,這個application物件都是同一個,直到伺服器關閉。但是與session不同的是,所有客戶的application物件都是同一個,即所有客戶共享這個內建的application物件。 2.application物件常用方法: (1)public void setAttribute(String key,Object obj): 將引數Object指定的物件obj新增到application物件中,併為新增的物件指定一個索引關鍵字。 (2)public Object getAttribute(String key): 獲取application物件中含有關鍵字的物件。 out out 物件用於在Web瀏覽器內輸出資訊,並且管理應用伺服器上的輸出緩衝區。在使用 out 物件輸出資料時,可以對資料緩衝區進行操作,及時清除緩衝區中的殘餘資料,為其他的輸出讓出緩衝空間。待資料輸出完畢後,要及時關閉輸出流。 page page 物件代表JSP本身,只有在JSP頁面內才是合法的。 page隱含物件本質上包含當前 Servlet介面引用的變數,類似於Java程式設計中的 this 指標。 config config 物件的主要作用是取得伺服器的配置資訊。通過 pageContext物件的 getServletConfig() 方法可以獲取一個config物件。當一個Servlet 初始化時,容器把某些資訊通過 config物件傳遞給這個 Servlet。 開發者可以在web.xml 檔案中為應用程式環境中的Servlet程式和JSP頁面提供初始化引數。 exception java.lang.Throwable 的例項,該例項代表其他頁面中的異常和錯誤。只有當頁面是錯誤處理頁面,即編譯指令page 的isErrorPage 屬性為true 時,該物件才可以使用。常用的方法有getMessage()和printStackTrace()等。 pageContext pageContext 物件的作用是取得任何範圍的引數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等物件。pageContext物件的建立和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext物件。 九、
以下哪幾種方式可用來實現執行緒間通知和喚醒:( ) A.Object.wait/notify/notifyAll B.ReentrantLock.wait/notify/notifyAll C.Condition.await/signal/signalAll D.Thread.wait/notify/notifyAll
解析:選擇AC。
Condition是在java 1.5中才出現的,它用來替代傳統的Object的wait()、notify()實現執行緒間的協作,相比使用Object的wait()、notify(),使用Condition1的await()、signal()這種方式實現執行緒間協作更加安全和高效。因此通常來說比較推薦使用Condition。
Thread.wait/notify/notifyAll繼承自Object,沒有自己實現。
ReentrantLock是lock和unlock方法。