這篇文章給大家分享的是有關(guān)JAVA基礎(chǔ)面試題的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、贊皇網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為贊皇等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。1.Java中final、finally、finalize的區(qū)別
簡單區(qū)別:
final用于聲明屬性,方法和類,分別表示屬性不可交變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。
finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時(shí)候會調(diào)用被回收對象的此方法,供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
2.error和exception有什么區(qū)別?
Error(錯誤)表示系統(tǒng)級的錯誤和程序不必處理的異常,是java運(yùn)行環(huán)境中的內(nèi)部錯誤或者硬件問題。比如:內(nèi)存資源不足等。對于這種錯誤,程序基本無能為力,除了退出運(yùn)行外別無選擇,它是由Java虛擬機(jī)拋出的。
Exception(違例)表示需要捕捉或者需要程序進(jìn)行處理的異常,它處理的是因?yàn)槌绦蛟O(shè)計(jì)的瑕疵而引起的問題或者在外的輸入等引起的一般性問題,是程序必須處理的。
Exception又分為運(yùn)行時(shí)異常,受檢查異常。
運(yùn)行時(shí)異常,表示無法讓程序恢復(fù)的異常,導(dǎo)致的原因通常是因?yàn)閳?zhí)行了錯誤的操作,建議終止程序,因此,編譯器不檢查這些異常。
受檢查異常,是表示程序可以處理的異常,也即表示程序可以修復(fù)(由程序自己接受異常并且做出處理), 所以稱之為受檢查異常。
3.Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?
1、什么是Set?(what)
Set是Collection容器的一個子接口,它不允許出現(xiàn)重復(fù)元素,當(dāng)然也只允許有一個null對象。
2、如何來區(qū)分重復(fù)與否呢?(how)
“ 用 iterator() 方法來區(qū)分重復(fù)與否 ”,這是在網(wǎng)上流傳的答案,個人認(rèn)為這是個錯誤的答案。JPI中寫的很明白:“set 不包含滿足
e1.equals(e2) 的元素對 e1 和 e2 ”,由此可見回答使用equals()區(qū)分更合適。
3、為什么用equals()而不用==來區(qū)分?(why)
應(yīng)該從它倆的區(qū)別談起,==是用來判斷兩者是否是同一對象(同一事物),而equals是用來判斷是否引用同一個對象。再看一下Set里面存的是對象,還是對象的引用。根據(jù)Java的存儲機(jī)制可知,set里面存放的是對象的引用,所以當(dāng)兩個元素只要滿足了equals()時(shí)就已經(jīng)指向同一個對象,也就出現(xiàn)了重復(fù)元素。所以應(yīng)該用equals()來判斷。
Static Nested Class (靜態(tài)嵌套類)是Inner Class(內(nèi)部類)的一種,
Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依賴于外部類實(shí)例被實(shí)例化。而通常的內(nèi)部類需要在外部類實(shí)例化后才能實(shí)例化。
Overload和Override的區(qū)別?
Override是重寫:方法名稱、參數(shù)個數(shù),類型,順序,返回值類型都是必須和父類方法一致的。它的關(guān)系是父子關(guān)系
Overload是重載:方法名稱不變,其余的都是可以變更的。它的關(guān)系是同一個類,同一個方法名,不同的方法參數(shù)或返回值。
備注:它們都是是Java多態(tài)性的不同表現(xiàn)
構(gòu)造器constructor是否可被override
1.Constructor不能被繼承,所以Constructor也就不能被override,但是可以overload,所以你可以看到有多個構(gòu)造函數(shù)這種情況。
2.不可以 ,每一個類必須有自己的構(gòu)造函數(shù),負(fù)責(zé)構(gòu)造自己這部分的構(gòu)造
子類不會覆蓋父類的構(gòu)造函數(shù),相反必須負(fù)責(zé)在一開始調(diào)用父類的構(gòu)造函數(shù)
List、Map、Set三個接口,存取元素時(shí),各有什么特點(diǎn)?
List 以特定次序來持有元素,可有重復(fù)元素。即,有序可重復(fù)。
Set 無法擁有重復(fù)元素,內(nèi)部排序。即,無序不可重復(fù)。
Map 保存 key-value 值,value可多值。一一映射。
Hashtable和HashMap的區(qū)別:
都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。
HashMap類沒有分類或者排序。它允許一個null鍵和多個null值。
Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,因?yàn)樗峭降摹?/p>
jsp中動態(tài)include與靜態(tài)include
動態(tài)INCLUDE在使用的時(shí)候,會先解析所要包含的頁面(你例子中的included.jsp),解析后在和主頁面放到一起顯示;
靜態(tài)INCLUDE在使用的時(shí)候,不會解析所要包含的頁面(你例子中的included.htm),也就是說,不管你的included.htm中有什么,我的任務(wù)就是把你包含并顯示,其他的一概不管
jsp:include是先編譯一下included.jsp文件,然后再包含 先編譯,后包含@ include是先把文件包含就來,然后統(tǒng)一編譯 先包含,后編譯
Java中 forward 和redirect的區(qū)別
使用forward的時(shí)候?yàn)g覽器不知道它所請求的具體資源來源,所以地址欄不會變;
使用redirect,服務(wù)端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL。
forward,轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共享request里面的數(shù)據(jù).
redirect,不能共享數(shù)據(jù).
jsp有哪幾個內(nèi)置對象?
1.request -->觸發(fā)服務(wù)調(diào)用的請求 -->范圍是:request
2.response -->對請求的應(yīng)答 -->范圍是:page
3.session -->為請求的客戶創(chuàng)建的session對象 -->范圍是:session
4.application -->從 servlet 配置對象獲得的 servlet 上下文(如在getServletConfig() getContext()的調(diào)用中) -->范圍是:application
5.out -->向輸出流寫入內(nèi)容的對象 -->范圍是:page
6.pageContext -->本 JSP 的頁面上下文 -->范圍是:page
7.page -->實(shí)現(xiàn)處理本頁當(dāng)前請求的類的實(shí)例 -->page
8.config -->本 JSP 的 ServletConfig -->page
9.exception -->表示JSP頁面運(yùn)行時(shí)產(chǎn)生的異常 -->Page
Servlet 生命周期:
Servlet 加載--->實(shí)例化--->服務(wù)--->銷毀。
1,初始化階段 調(diào)用init()方法
2,響應(yīng)客戶請求階段 調(diào)用service()方法
3,終止階段 調(diào)用destroy()方法
left join inner join right join 區(qū)別
left\right join是外部連接,inner join是內(nèi)連接
外部連接有主表與從表,主表在left中是左側(cè)表,right中是右側(cè)表,主表數(shù)據(jù)會全部顯示,從表數(shù)據(jù)則只顯示關(guān)聯(lián)部分匹配的數(shù)據(jù),無匹配的數(shù)據(jù)用null補(bǔ)全
內(nèi)連接則只顯示兩表關(guān)聯(lián)條件匹配的數(shù)據(jù)
注:所謂關(guān)聯(lián)條件即是指on的條件
oracle常用函數(shù)
Oracle SQL 提供了用于執(zhí)行特定操作的專用函數(shù)。這些函數(shù)大大增強(qiáng)了 SQL 語言的功能。函數(shù)可以接受零個或者多個輸入?yún)?shù),并返回一個輸出結(jié)果。 Oracle 數(shù)據(jù)庫中主要使用兩種類型的函數(shù):
1. 單行函數(shù):對每一個函數(shù)應(yīng)用在表的記錄中時(shí),只能輸入一行結(jié)果,返回一個結(jié)果,
比如:MOD(x,y)返回 x 除以 y 的余數(shù)(x 和 y 可以是兩個整數(shù),也可以是表中的整
數(shù)列)。常用的單行函數(shù)有:
字符函數(shù):對字符串操作。
數(shù)字函數(shù):對數(shù)字進(jìn)行計(jì)算,返回一個數(shù)字。
轉(zhuǎn)換函數(shù):可以將一種數(shù)據(jù)類型轉(zhuǎn)換為另外一種數(shù)據(jù)類型。
日期函數(shù):對日期和時(shí)間進(jìn)行處理。
2. 聚合函數(shù):聚合函數(shù)同時(shí)可以對多行數(shù)據(jù)進(jìn)行操作,并返回一個結(jié)果。比如 SUM(x)
返回結(jié)果集中 x 列的總合。
索引是為了加速對表中數(shù)據(jù)行的檢索而創(chuàng)建的一種分散的存儲結(jié)構(gòu)。索引是針對表而建立的,它是由數(shù)據(jù)頁面以外的索引頁面組成的,每個索引頁面中的行都會含有邏輯指針,以便加速檢索物理數(shù)據(jù)。
在數(shù)據(jù)庫關(guān)系圖中,可以在選定表的“索引/鍵”屬性頁中創(chuàng)建、編輯或刪除每個索引類型。當(dāng)保存索引所附加到的表,或保存該表所在的關(guān)系圖時(shí),索引將保存在數(shù)據(jù)庫中。
數(shù)據(jù)庫索引是為了增加查詢速度而對表字段附加的一種標(biāo)識。
索引的作用:
1.通過創(chuàng)建唯一索引,可以保證數(shù)據(jù)記錄的唯一性。
2.可以大大加快數(shù)據(jù)檢索速度。
3.可以加速表與表之間的連接,這一點(diǎn)在實(shí)現(xiàn)數(shù)據(jù)的參照完整性方面有特別的意義。
4.在使用ORDER BY和GROUP BY子句中進(jìn)行檢索數(shù)據(jù)時(shí),可以顯著減少查詢中分組和排序的時(shí)間。
感謝各位的閱讀!關(guān)于“JAVA基礎(chǔ)面試題的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。