41皮胡、Java中異常分為哪兩種?說幾個常見的編譯時異常類涮总?
42胸囱、異常的處理機制有幾種?如何自定義一個異常瀑梗?
43、在異常捕捉時,如果發(fā)生異常浊伙,那么try.catch.finally塊外的return語句會執(zhí)行嗎?try饰豺、catch、finally是必須要存在的嗎允蜈?
44冤吨、thow與thorws區(qū)別
45、Error與Exception區(qū)別饶套?
46漩蟆、Log4j日志有幾個級別?使用Log4j對程序有影響嗎妓蛮?
47怠李、創(chuàng)建對象的方式有哪幾種?哪種效率更高蛤克?
48捺癞、Java中集合框架的有幾個?Collection接口下有那些集合框架构挤?分別有什么特點髓介?
49、ArrayList與LinkedList有什么區(qū)別筋现?Array與ArrayList有什么不一樣唐础?
50、詳解Java中的集合框架
41夫否、Java中異常分為哪兩種彻犁?說幾個常見的編譯時異常類叫胁?
編譯時異常凰慈、運行時異常
常見的編譯時異常類:
NullPointerException:空指針異常
ArrayIndexOutOfBoundsException:數組下標越界
NumberFormatException:數字轉換異常
IllegalArgumentException:參數不匹配異常
InstantiationException:對象初始化異常
ArithmeticException:算術異常
42、異常的處理機制有幾種驼鹅?如何自定義一個異常微谓?
異常的處理機制:
異常捕捉:try…catch…finally
異常拋出:throws自定義一個異常:
繼承一個異常類,通常是RumtimeException或者Exception
43输钩、在異常捕捉時豺型,如果發(fā)生異常,那么try.catch.finally塊外的return語句會執(zhí)行嗎买乃?try姻氨、catch、finally是必須要存在的嗎剪验?
會執(zhí)行肴焊,如果有finally前联,在finally之后被執(zhí)行,如果沒有finally娶眷,在catch之后被執(zhí)行
try塊必須存在似嗤,catch和finally可以不存在,但不能同時不存在
44届宠、thow與thorws區(qū)別
thow | throws |
---|---|
用在方法體內烁落,跟的是異常對象名 | 用在方法聲明后面,跟的是異常類名 |
只能拋出一個異常對象名 | 可以跟多個異常類名豌注,用逗號隔開 |
表示拋出異常伤塌,由方法體內的語句處理 | 表示拋出異常,由該方法的調用者來處理 |
執(zhí)行throw則一定拋出了某種異常 | throws表示出現異常的一種可能性轧铁,并不一定會發(fā)生這些異常 |
45寸谜、Error與Exception區(qū)別?
Error | Exception |
---|---|
是java錯誤處理機制的一部分 | 是java錯誤處理機制的一部分 |
繼承了Throwable類 | 繼承了Throwable類 |
表示系統(tǒng)錯誤属桦,不能通過程序來進行錯誤處理 | 表示的異常熊痴,異常可以通過程序來捕捉聂宾,或者優(yōu)化程序來避免果善。 |
46、Log4j日志有幾個級別系谐?使用Log4j對程序有影響嗎巾陕?
由低到高:debug、info纪他、wran鄙煤、error
有,log4j是用來日志記錄的茶袒,記錄一些關鍵敏感的信息梯刚,通常會將日志記錄到本地文件或者數據庫中。記錄在本地文件中薪寓,會有頻繁的io操作亡资,會耗費一些系統(tǒng)資源。記錄在數據庫中向叉,會頻繁地操作數據庫表锥腻,對系統(tǒng)性能也有一定的影響。但是為了程序安全以及數據的恢復或者bug的跟蹤母谎,這點資源消耗是可以承受的瘦黑。
47、創(chuàng)建對象的方式有哪幾種?哪種效率更高幸斥?
兩種:new,Java反射
通過new創(chuàng)建對象的效率比較高存崖。通過反射時,先找查找類資源睡毒,使用類加載器創(chuàng)建来惧,過程比較繁瑣,所以效率較低
48演顾、Java中集合框架的有幾個供搀?Collection接口下有那些集合框架?分別有什么特點
Collection钠至、Map葛虐。
List:線性表:順序存儲、可以有重復值棉钧。
Set:無序集合: 無須存儲屿脐、不能有重復值。
49宪卿、ArrayList與LinkedList有什么區(qū)別的诵?Array與ArrayList有什么不一樣?
ArrayList | LinkedList |
---|---|
實現了List接口 | 實現了List接口 |
線性表佑钾,底層是使用數組實現的 | 雙向鏈表 |
在尾端插入和訪問數據時效率較高 | 在中間插入或者頭部插入時效率較高西疤,在訪問數據時效率較低 |
Array與ArrayList都是用來存儲數據的集合。ArrayList底層是使用數組實現的休溶,但是ArrayList對數組進行了封裝和功能擴展代赁,擁有許多原生數組沒有的一些功能。我們可以理解成ArrayList是Array的一個升級版兽掰。
50芭碍、詳解Java中的集合框架
-
定義:
Java中的集合類:是一種工具類,就像是容器孽尽,存儲任意數量的具有共同屬性的對象窖壕。
-
作用:
集合可以:
1、在類的內部泻云,對數據進行組織艇拍;
2、簡單而快速的搜索大數量的條目宠纯;
3、有的集合接口层释,提供了一系列排列有序的元素婆瓜,并且可以在序列中間快速的插入或者刪除元素;
4、有的集合接口廉白,提供了映射關系个初,可以通過關鍵字(key)快速的查找到對應的唯一對象,而這個關鍵字可以是任意類型猴蹂。
-
與數組的對比:
1院溺、數組的長度固定,集合長度可變磅轻;
2珍逸、數組只能通過下標訪問元素,下標類型只能是數字型聋溜,而有的集合可以通過任意類型查找所映射的具體對象谆膳。
-
Java集合框架的體系結構
image.png
Collection接口
1、是List撮躁、Set和Queue接口的父接口漱病;
2、定義了可用于操作List把曼、Set和Queue的方法——增刪改查杨帽;
-
List接口及其實現類——ArrayList
1、 List(序列)嗤军,元素有序睦尽,并且可重復;
2型雳、List可以精確控制元素的插入位置当凡,或刪除指定位置的元素;
3纠俭、ArrayList——數組序列沿量,是List的一個重要實現類;
4冤荆、ArrayList底層是由數組實現的
泛型集合中朴则,不能添加泛型規(guī)定的類型及其子類型以外的對象,否則會報錯钓简。
泛型集合中的限定類型乌妒,不能使用基本類型,必須用基本類型的包裝類外邓。
-
Set接口及其實現類——HashSet
1撤蚊、Set(集),元素無序损话,并且不可以重復侦啸;
2槽唾、HashSet——哈希集,是Set的一個重要實現類光涂;
Map接口
1庞萍、Map提供了一種映射關系,元素是以鍵值對(key-value)的形式存儲的忘闻,能根據key快速查找value钝计;
2、Map中的鍵值對以Entry類型的對象實例形式存在齐佳;
3私恬、key值不能重復,value值可以重復重虑;
4践付、key對value是多(一)對一的關系;
5缺厉、Map接口提供了返回key值集合永高、value值集合、Entry值集合提针,的方法命爬;
6、Map支持泛型辐脖,形式如:Map<K,V>
-
HashMap類
1饲宛、HashMap是Map的一個重要實現類,也是最常用的嗜价,基于哈希表實現艇抠;
2、HashMap中的Entry對象是無序排列的久锥;
3家淤、Key值和value值都可以為null,但是一個HashMap只能有一個Key值為null的映射(Key值不可重復)瑟由;