1.Java中final、finally、finalize的區別
簡單區別:
final用於聲明屬性,方法和類,分別表示屬性不可交變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示老是執行。
finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,供垃圾收集時的其餘資源回收,例如關閉文件等。java
2.error和exception有什麼區別?
Error(錯誤)表示系統級的錯誤和程序沒必要處理的異常,是java運行環境中的內部錯誤或者硬件問題。好比:內存資源不足等。對於這種錯誤,程序基本無能爲力,除了退出運行外別無選擇,它是由Java虛擬機拋出的。
Exception(違例)表示須要捕捉或者須要程序進行處理的異常,它處理的是由於程序設計的瑕疵而引發的問題或者在外的輸入等引發的通常性問題,是程序必須處理的。
Exception又分爲運行時異常,受檢查異常。
運行時異常,表示沒法讓程序恢復的異常,致使的緣由一般是由於執行了錯誤的操做,建議終止程序,所以,編譯器不檢查這些異常。
受檢查異常,是表示程序能夠處理的異常,也即表示程序能夠修復(由程序本身接受異常而且作出處理), 因此稱之爲受檢查異常。數據庫
3.Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==仍是equals()? 它們有何區別?瀏覽器
一、什麼是Set?(what)
Set是Collection容器的一個子接口,它不容許出現重複元素,固然也只容許有一個null對象。
二、如何來區分重複與否呢?(how)
「 用 iterator() 方法來區分重複與否 」,這是在網上流傳的答案,我的認爲這是個錯誤的答案。JPI中寫的很明白:「set 不包含知足
e1.equals(e2) 的元素對 e1 和 e2 」,因而可知回答使用equals()區分更合適。
三、爲何用equals()而不用==來區分?(why)
應該從它倆的區別談起,==是用來判斷二者是不是同一對象(同一事物),而equals是用來判斷是否引用同一個對象。再看一下Set裏面存的是
對象,仍是對象的引用。根據Java的存儲機制可知,set裏面存放的是對象的引用,因此當兩個元素只要知足了equals()時就已經指向同一個對象,
也就出現了重複元素。因此應該用equals()來判斷。session
Static Nested Class (靜態嵌套類)是Inner Class(內部類)的一種,
Static Nested Class是被聲明爲靜態(static)的內部類,它能夠不依賴於外部類實例被實例化。而一般的內部類須要在外部類實例化後才能實例化。oracle
Overload和Override的區別?
Override是重寫:方法名稱、參數個數,類型,順序,返回值類型都是必須和父類方法一致的。它的關係是父子關係
Overload是重載:方法名稱不變,其他的都是能夠變動的。它的關係是同一個類,同一個方法名,不一樣的方法參數或返回值。
備註:它們都是是Java多態性的不一樣表現app
構造器constructor是否可被override
1.Constructor不能被繼承,因此Constructor也就不能被override,可是能夠overload,因此你能夠看到有多個構造函數這種狀況。jsp
2.不能夠 ,每個類必須有本身的構造函數,負責構造本身這部分的構造
子類不會覆蓋父類的構造函數,相反必須負責在一開始調用父類的構造函數ide
List、Map、Set三個接口,存取元素時,各有什麼特色?
List 以特定次序來持有元素,可有重複元素。即,有序可重複。函數
Set 沒法擁有重複元素,內部排序。即,無序不可重複。設計
Map 保存 key-value 值,value可多值。一一映射。
Hashtable和HashMap的區別:
都屬於Map接口的類,實現了將唯一鍵映射到特定的值上。
HashMap類沒有分類或者排序。它容許一個null鍵和多個null值。
Hashtable相似於HashMap,可是不容許null鍵和null值。它也比HashMap慢,由於它是同步的。
jsp中動態include與靜態include
動態INCLUDE在使用的時候,會先解析所要包含的頁面(你例子中的included.jsp),解析後在和主頁面放到一塊兒顯示;
靜態INCLUDE在使用的時候,不會解析所要包含的頁面(你例子中的included.htm),也就是說,無論你的included.htm中有什麼,個人任務就是把你包含並顯示,其餘的一律無論
jsp:include是先編譯一下included.jsp文件,而後再包含 先編譯,後包含
@ include是先把文件包含就來,而後統一編譯 先包含,後編譯
Java中 forward 和redirect的區別
使用forward的時候瀏覽器不知道它所請求的具體資源來源,因此地址欄不會變;
使用redirect,服務端根據邏輯,發送一個狀態碼,告訴瀏覽器從新去請求那個地址.因此地址欄顯示的是新的URL。
forward,轉發頁面和轉發到的頁面能夠共享request裏面的數據.
redirect,不能共享數據.
jsp有哪幾個內置對象?
1.request -->觸發服務調用的請求 -->範圍是:request 2.response -->對請求的應答 -->範圍是:page
3.session -->爲請求的客戶建立的session對象 -->範圍是:session 4.application -->從 servlet 配置對象得到的 servlet 上下文(如在getServletConfig() getContext()的調用中) -->範圍是:application
5.out -->向輸出流寫入內容的對象 -->範圍是:page 6.pageContext -->本 JSP 的頁面上下文 -->範圍是:page
7.page -->實現處理本頁當前請求的類的實例 -->page
8.config -->本 JSP 的 ServletConfig -->page
9.exception -->表示JSP頁面運行時產生的異常 -->Page
Servlet 生命週期:
Servlet 加載--->實例化--->服務--->銷燬。
1,初始化階段 調用init()方法
2,響應客戶請求階段 調用service()方法
3,終止階段 調用destroy()方法
left join inner join right join 區別
left\right join是外部鏈接,inner join是內鏈接
外部鏈接有主表與從表,主表在left中是左側表,right中是右側表,主表數據會所有顯示,從表數據則只顯示關聯部分匹配的數據,無匹配的數據用null補全
內鏈接則只顯示兩表關聯條件匹配的數據
注:所謂關聯條件便是指on的條件
oracle經常使用函數
Oracle SQL 提供了用於執行特定操做的專用函數。這些函數大大加強了 SQL 語言的功能。函數能夠接受零個或者多個輸入參數,並返回一個輸出結果。 Oracle 數據庫中主要使用兩種類型的函數:
1. 單行函數:對每個函數應用在表的記錄中時,只能輸入一行結果,返回一個結果,
好比:MOD(x,y)返回 x 除以 y 的餘數(x 和 y 能夠是兩個整數,也能夠是表中的整
數列)。經常使用的單行函數有:
? 字符函數:對字符串操做。
? 數字函數:對數字進行計算,返回一個數字。
? 轉換函數:能夠將一種數據類型轉換爲另一種數據類型。
? 日期函數:對日期和時間進行處理。
2. 聚合函數:聚合函數同時能夠對多行數據進行操做,並返回一個結果。好比 SUM(x)
返回結果集中 x 列的總合。
索引是爲了加速對錶中數據行的檢索而建立的一種分散的存儲結構。索引是針對表而創建的,它是由數據頁面之外的索引頁面組成的,每一個索引頁面中的行都會含有邏輯指針,以便加速檢索物理數據。
在數據庫關係圖中,能夠在選定表的「索引/鍵」屬性頁中建立、編輯或刪除每一個索引類型。當保存索引所附加到的表,或保存該表所在的關係圖時,索引將保存在數據庫中。
數據庫索引是爲了增長查詢速度而對錶字段附加的一種標識。索引的做用:1.經過建立惟一索引,能夠保證數據記錄的惟一性。2.能夠大大加快數據檢索速度。3.能夠加速表與表之間的鏈接,這一點在實現數據的參照完整性方面有特別的意義。4.在使用ORDER BY和GROUP BY子句中進行檢索數據時,能夠顯著減小查詢中分組和排序的時間。