1. 程式人生 > >每天五個java相關面試題(10)--java基礎詳解篇2

每天五個java相關面試題(10)--java基礎詳解篇2

好勒好勒。一起加油

一、HashMap和Hashtable的區別。

答:
HashMap是Hashtable的輕量級實現(非執行緒安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非執行緒安全,效率上可能高於Hashtable。
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個執行緒訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步。
Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以效能不會有很大的差異。

上面回答中涉及的知識點:

1、Dictionary類,為抽象類,用來儲存鍵值對,作用與Map相似。(這個類已過時)。
2、執行緒安全。這個問題又涉及到了執行緒安全,所有關於執行緒安全可以看我前一篇博文中提到的執行緒安全知識點。

二、final, finally, finalize的區別。

答:
final 用於宣告屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執行。
finalize是Object類的一個方法,在垃圾收集器執行的時候會呼叫被回收物件的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉檔案等。

上面回答中涉及的知識點:

1、每個類都有finalize()方法嘛?為什麼?
答:都有這個方法。由於finalize()屬於Object類,因此所有類都有這個方法,Object的任意子類都可以重寫 (override)該方法,在其中釋放系統資源或者做其它的清理工作,如關閉輸入輸出流。

三、sleep() 和 wait() 有什麼區別?

答:
sleep是執行緒類(Thread)的方法,導致此執行緒暫停執行指定時間,給執行機會給其他執行緒,但是監控狀態依然保持,到時後會自動恢復。呼叫sleep不會釋放物件鎖。
wait是Object類的方法,對此物件呼叫wait方法導致本執行緒放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件發出notify方法(或notifyAll)後本執行緒才進入物件鎖定池準備獲得物件鎖進入執行狀態。

上面回答中涉及的知識點:

四、Overload和Override的區別。Overloaded的方法是否可以改變返回值的型別?

答:
方法的重寫Overriding和過載Overloading是Java多型性的不同表現。重寫Overriding是父類與子類之間多型性的一種表現,過載Overloading是一個類中多型性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 (Overriding)。子類的物件使用這個方法時,將呼叫子類中的定義,對它而言,父類中的定義如同被”遮蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的引數個數或有不同的引數型別,則稱為方法的過載(Overloading)。Overloaded的方法是可以改變返回值的型別。

五、error和exception有什麼區別?

答:
error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說記憶體溢位。不可能指望程式能處理這樣的情況。
exception 表示一種設計或實現問題。也就是說,它表示如果程式執行正常,從不會發生的情況。

有什麼問題的地方或是你覺得回答中可能是個“坑”、會被面試官抓住追問的地方歡迎大家一起交流~一起進步~!

相關推薦

每天java相關試題10--java基礎2

好勒好勒。一起加油 一、HashMap和Hashtable的區別。 答: HashMap是Hashtable的輕量級實現(非執行緒安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非執行緒安全,效率上

每天java相關試題9--java基礎1

接下來會系統的總結java基礎,然後過兩天會開始從新開始複習前端並更新和總結一些關於前端的基礎知識和麵試題,嗯嗯我是一個想走前端的後端java工程師啊哈哈。馬上開學大四了,lz我要加油啦~ 接下來的面試題會學習我們班小夥伴的好學習方法,一個個刨根問底了,理清楚

每天java相關試題8--spring

ioc 簡單 組件 print 提交數據 常常 spring容器 效果 用戶 首先呢,假設有從事前端開發的大神或者準備從事前端開發的小夥伴無意看到我這篇博客看到這段文字歡迎加我的QQ:【 845415745 】。即將走入社會的菜鳥大學生有關於前端開發的職

Java筆試試題

共享 ble ati uil sys res 表達式 split 底層 每日一句:想,都是問題;做,才是答案。 構造器Constructor是否可被Override?構造器Constructor不能被繼承,因此不能重寫Override,但是可以被重載Overload。

Java筆試試題

人員 syn 獲得 直接 作用 sleep 超過 分配 bcd 每日一句:我既不悲觀,也不樂觀,只是每天早上睜開眼睛迎接新的一天,一個人努力過下去 1. 下面這條語句一共創建了多少個對象:String s = "a"+"b"+&quo

Java實習生試題

面臨金九銀十的黃金跳槽季,不光是很多在職人員躍躍欲試,也有很多大學生積極地加入到應聘行列。作為技術出身的我們,找工作的一大前提就是技術是否能過關。而對於java程式設計師來說,至少是兩關的面試,這首個關卡就是筆試,今天我總結了一些關於java的面試題,希望能幫助到正在求職的你!  

java經典試題:單鏈表反轉問題含遞迴法

java經典面試題:單鏈表反轉問題,有兩種方法,一種為迴圈遍歷法,一種遞迴法。 1、迴圈遍歷法   首先設定三個節點,把當前節點的下一節點指向它前面的節點,此時你會發現指標鏈會斷,所以要先把它後面一個節點用nextNode儲存下來,之後把節點向後移動遍歷即可。    程式碼如下: //

java經典試題1

1、 面向物件的特徵有哪些方面 1.抽象: 抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。

Redis 相關試題

(1)redis的快取失效策略和主鍵失效機制 作為快取系統都要定期清理無效資料,就需要一個主鍵失效和淘汰策略. 在Redis當中,有生存期的key被稱為volatile。在建立快取時,要為給定的key設定生存期,當key過期的時候(生存期為0),它可能會被刪

Java中高階試題5

點選上方“芋道原始碼”,選擇“置頂公眾號”技術文章第一時間送達!原始碼精品專欄 什麼是執行緒死鎖

Java商城試題

SSO單點登入: SSO系統:這裡涉及到攔截器。        這裡是利用了sso的介面文件,即校驗介面、註冊、登入介面、根據token查詢使用者介面、安全退出介面。    這個的呼叫服務層是利用jsonp的形式訪問的服務介面,實現跨域訪問。客戶端全部在jsp頁面實現的

JAVA經典試題--如何體現JavaScript的繼承關係?

js裡常用的如下兩種繼承方式: 原型鏈繼承(物件間的繼承) 類式繼承(建構函式間的繼承) 由於js不像java那樣是真正面向物件的語言,js是基於物件的,它沒有類的概念。所以,要想實現繼承,可以用js的原型prototype機制或者用apply和call方

JAVA經典試題-- 判斷以及防止SQL注入

SQL注入是目前黑客最常用的攻擊手段,它的原理是利用資料庫對特殊識別符號的解析強行從頁面向後臺傳入。改變SQL語句結構,達到擴充套件許可權、建立高等級使用者、強行修改使用者資料等等操作。 那怎麼判斷是否被SQL注入了呢? 通過SQL注入的原理我們知道,判斷S

介面測試相關試題

1 做介面測試當請求引數多時tps下降明顯,此介面根據引數從redis中獲取資料,每個引數與redis互動一次,當一組引數是tps5133,五組引數是tps1169,多次互動影響了處理效能,請詳細闡述如何改進增進效果的方案。2 介面的加密測試中對稱加密與非對稱加密有什麼區別? 如何開展測試? 請詳解對稱加密是

java程式設計師菜鳥進階oracle基礎oracle查詢語句和資料排序

本文所以練習都是基於oracle自帶提供的一個數據庫進行的。資料庫中包含員工表emp。部門資訊表dept。員工工資工總表下面是三個表的表結構:一:基本查詢語句1.最簡單的查詢所有列語句Select * from emp;2.查詢指定列表的查詢語句Select empno ,e

Java相關試題總結+答案

exit json cor 常用 padding 狀態 創建 exce 執行 【異常】 74. throw 和 throws 的區別? throw 是真實拋出一個異常; throws 是聲明可能會拋出一個異常。 75. final、finally、fin

java筆試試題

oot 控件庫 rect 地址 edi javascrip apach getc mat 每日一句: 你未必出類拔萃,但一定與眾不同。 1. 說說你使用過哪些ajax技術和框架,說它們的區別AJAX(Asynchronous JavaScript And XML,異步Jav

Java異常相關試題

1)java中什麼是Exception ?        簡單的說,異常就是Java傳達給系統的和程式錯誤的方式。在java中,異常功能是通過實現比如 Throwable,Exception,RuntimeException 之類的,然後還有一些處理異常時候的關鍵字,比如:

Java相關試題總結+答案

情況 包括 積分 java none 一次 功能 能力 協助 【RabbitMQ】 135. RabbitMQ 的使用場景有哪些? 搶購活動,削峰填谷,防止系統崩塌。 延遲信息處理,比如 10 分鐘之後給下單未付款的用戶發送郵件提醒。 解耦系統,對於新增的功

Java相關試題總結+答案

高速緩存 serial 串行化 jedis 5.1 ria 最大 配置文件 ack 【MySQL】 164. 數據庫的三範式是什麽? 第一範式:強調的是列的原子性,即數據庫表的每一列都是不可分割的原子數據項。 第二範式:屬性完全依賴於主鍵(滿足第一範式的前提下