您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關JAVA基礎面試題的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1.Java中final、finally、finalize的區別
簡單區別:
final用于聲明屬性,方法和類,分別表示屬性不可交變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執行。
finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,供垃圾收集時的其他資源回收,例如關閉文件等。
2.error和exception有什么區別?
Error(錯誤)表示系統級的錯誤和程序不必處理的異常,是java運行環境中的內部錯誤或者硬件問題。比如:內存資源不足等。對于這種錯誤,程序基本無能為力,除了退出運行外別無選擇,它是由Java虛擬機拋出的。
Exception(違例)表示需要捕捉或者需要程序進行處理的異常,它處理的是因為程序設計的瑕疵而引起的問題或者在外的輸入等引起的一般性問題,是程序必須處理的。
Exception又分為運行時異常,受檢查異常。
運行時異常,表示無法讓程序恢復的異常,導致的原因通常是因為執行了錯誤的操作,建議終止程序,因此,編譯器不檢查這些異常。
受檢查異常,是表示程序可以處理的異常,也即表示程序可以修復(由程序自己接受異常并且做出處理), 所以稱之為受檢查異常。
3.Set里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用==還是equals()? 它們有何區別?
1、什么是Set?(what)
Set是Collection容器的一個子接口,它不允許出現重復元素,當然也只允許有一個null對象。
2、如何來區分重復與否呢?(how)
“ 用 iterator() 方法來區分重復與否 ”,這是在網上流傳的答案,個人認為這是個錯誤的答案。JPI中寫的很明白:“set 不包含滿足
e1.equals(e2) 的元素對 e1 和 e2 ”,由此可見回答使用equals()區分更合適。
3、為什么用equals()而不用==來區分?(why)
應該從它倆的區別談起,==是用來判斷兩者是否是同一對象(同一事物),而equals是用來判斷是否引用同一個對象。再看一下Set里面存的是對象,還是對象的引用。根據Java的存儲機制可知,set里面存放的是對象的引用,所以當兩個元素只要滿足了equals()時就已經指向同一個對象,也就出現了重復元素。所以應該用equals()來判斷。
Static Nested Class (靜態嵌套類)是Inner Class(內部類)的一種,
Static Nested Class是被聲明為靜態(static)的內部類,它可以不依賴于外部類實例被實例化。而通常的內部類需要在外部類實例化后才能實例化。
Overload和Override的區別?
Override是重寫:方法名稱、參數個數,類型,順序,返回值類型都是必須和父類方法一致的。它的關系是父子關系
Overload是重載:方法名稱不變,其余的都是可以變更的。它的關系是同一個類,同一個方法名,不同的方法參數或返回值。
備注:它們都是是Java多態性的不同表現
構造器constructor是否可被override
1.Constructor不能被繼承,所以Constructor也就不能被override,但是可以overload,所以你可以看到有多個構造函數這種情況。
2.不可以 ,每一個類必須有自己的構造函數,負責構造自己這部分的構造
子類不會覆蓋父類的構造函數,相反必須負責在一開始調用父類的構造函數
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子句中進行檢索數據時,可以顯著減少查詢中分組和排序的時間。
感謝各位的閱讀!關于“JAVA基礎面試題的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。