面經(jīng)整理第一天-java基礎(chǔ)

1.finally語句塊什么情況不會執(zhí)行

四種情況:

? ? (1)finally語句塊第一行出現(xiàn)異常

? ? (2)程序拋出異常(或者return)之前经窖,調(diào)用system.exits()揣云,退出程序

? ? (3)程序拋出異常(或者return)之前,線程死亡

? ? (4)程序拋出異常(或者return)之前,關(guān)閉CPU

2.java有了基本類型,為什么還要設(shè)計(jì)對應(yīng)的引用類型

? ? (1)可以使用為該引用類型而編寫的方法

? ? (2)Java集合(map、set柱锹、list)等所有集合只能存放引用類型數(shù)據(jù)哪自,不能存放基本類型數(shù)據(jù)(容器中實(shí)際存放的是對象的引用)丰包。

? ? (3)引用類型對象存儲在堆上,可以控制其生命周期壤巷;而基本類型存儲在棧上邑彪,會隨著代碼塊運(yùn)行結(jié)束被回收。

? ? (4)java泛型使用類型擦除法實(shí)現(xiàn)胧华,基本類型無法實(shí)現(xiàn)泛型寄症。

3.怎么理解多態(tài)(多態(tài)的好處

是什么:多態(tài)是引用變量指向的實(shí)例對象在程序運(yùn)行期才確定;

好處:1.提高的代碼的可維護(hù)性(即可以通過改寫父類屬性與方法來改寫子類共有屬性與方法)

? ? ? ? ? ?2.提高了代碼的可擴(kuò)展性(即子類方法可以被父類的引用變量調(diào)用)

怎么實(shí)現(xiàn):繼承父類矩动、實(shí)現(xiàn)接口

4.什么是反射有巧?

(1)反射是可以在運(yùn)行時得到某個類的完整信息;

(2)獲取類的信息首先要得到該類對應(yīng)的Class對象悲没,拿到Class對象的方式如下篮迎;

(3)拿到class對象后,就可以調(diào)用class對象的成員方法示姿,得到類的信息甜橱,如 getMethodgetField栈戳,getConstructor岂傲,newInstance

(4)反射的原理:

(5)反射的應(yīng)用:

5.自動拆裝箱

什么時候發(fā)生、具體怎么實(shí)現(xiàn)

自動拆箱:當(dāng)基礎(chǔ)類型與引用類型進(jìn)行 “==子檀、+镊掖、-乃戈、×、÷” 運(yùn)算時堰乔,會對引用類型進(jìn)行自動拆箱偏化;

????具體實(shí)現(xiàn),引用類型對象內(nèi)部包含對應(yīng)基本類型的成員變量镐侯,自動拆箱時返回該成員變量即可侦讨;

自動裝箱:使用基礎(chǔ)類型給引用類型變量賦值

? ? 具體實(shí)現(xiàn):調(diào)用引用類型對應(yīng)的靜態(tài)方法valueOf,本質(zhì)是在該方法內(nèi)部調(diào)用構(gòu)造函數(shù)創(chuàng)建對象苟翻。


6.java泛型相關(guān)問題

(1)是什么:泛型就是將類型參數(shù)化韵卤,在編譯時才確定具體的參數(shù)。這種參數(shù)類型可以用在類崇猫、接口和方法的創(chuàng)建中沈条,分別稱為泛型類、泛型接口诅炉、泛型方法蜡歹。

(2)為什么(好處):為了創(chuàng)建容器類,可以實(shí)現(xiàn)類型安全且消除了很多的強(qiáng)制類型轉(zhuǎn)換涕烧;

(3)原理:??泛型只存在于編譯階段月而,不存在與運(yùn)行階段(編譯后的class文件不存在泛型的概念)

? ? 編譯時,使用Object代替泛型參數(shù)T议纯,如果使用T extends XXX 或者 T super XXX父款,則使用XXX代替泛型參數(shù)T

7.序列化反序列化相關(guān)問題

(1)是什么:序列化是將對象轉(zhuǎn)換為字節(jié)序列,以便在網(wǎng)絡(luò)中傳輸或保存在本地瞻凤;

? ? ? ? ? ? ? ? ? ? ? 反序列化是把字節(jié)序列轉(zhuǎn)換為對象憨攒。(通過讀取字節(jié)流中對象的屬性,創(chuàng)建出一個有著同樣屬性的? ? 對象)

(2)為什么:需要對內(nèi)存中的對象進(jìn)行持久化或者網(wǎng)絡(luò)傳輸阀参。序列化反序列化還可以用于深拷貝(因?yàn)樾蛄谢梢詫⒄麄€對象層次寫入字節(jié)流中)

(3)怎么實(shí)現(xiàn):實(shí)現(xiàn)Serializable接口或者Externalizable接口肝集。

(4)serialVersionUID:用來表明類不同版本之間的兼容性

理解:JVM會在序列化的時候,自動創(chuàng)建一個serialVersionUID字段蛛壳,一起序列化成字節(jié)流杏瞻,如果在類中顯示指定了該字段并賦值,則序列化的值會用顯示指定的炕吸;在反序列化的時候伐憾,JVM也會創(chuàng)建一個serialVersionUID(根據(jù)反序列化這邊所在的程序,和字節(jié)流無關(guān))赫模,如果反序列化這邊的類同樣指定了serialVersionUID字段树肃,則JVM創(chuàng)建的serialVersionUID的值就是顯示指定的。在反序列化的時候瀑罗,JVM會比較創(chuàng)建的serialVersionUID值和字節(jié)流中的serialVersionUID值是否一致胸嘴,一致則可以反序列化雏掠,不一致會異常。

? ? 如果不顯示指定劣像,則不能保證序列化和反序列化兩邊JVM創(chuàng)建的serialVersionUID值相等乡话。

(5)對于不想序列化的字段,使用 transient 關(guān)鍵字修飾耳奕,該字段在被反序列化的時候绑青,會被設(shè)置為零值。

(6)序列化和反序列化是針對對象的屋群,靜態(tài)字段不會被序列化(也不需要被序列化)


8.java異常相關(guān)問題

(1)是什么:?Throwable派生出Error闸婴、Exception。Exception又分為運(yùn)行時異常非運(yùn)行時異常芍躏。

error:程序無法處理的嚴(yán)重錯誤 邪乍,不能通過?catch?來進(jìn)行捕獲,通常會導(dǎo)致程序終止对竣。例如系統(tǒng)崩潰庇楞、內(nèi)存不足;

exception:程序可以處理的異常否纬,需要對其進(jìn)行處理 ;

其中非運(yùn)行時異常必須對其進(jìn)行處理吕晌,運(yùn)行時異常可以由程序員自己決定(因?yàn)檫\(yùn)行時異常中有很多是代碼本身寫錯了,需要的不是處理異常烦味,而是修改代碼聂使,如空指針異常壁拉、數(shù)據(jù)訪問越界異常)谬俄。

(2)java常見異常:

java.lang.InstantiationError:實(shí)例化錯誤。當(dāng)一個應(yīng)用試圖通過new操作符構(gòu)造一個抽象類或者接口時拋出該異常.

java.lang.OutOfMemoryError:內(nèi)存不足錯誤弃理。當(dāng)可用內(nèi)存不足以讓Java虛擬機(jī)分配給一個對象時拋出該錯誤溃论。

java.lang.StackOverflowError:堆棧溢出錯誤。當(dāng)一個應(yīng)用遞歸調(diào)用的層次太深而導(dǎo)致堆棧溢出或者陷入死循環(huán)時拋出該錯誤痘昌。

java.lang.IndexOutOfBoundsException:索引越界異常钥勋。當(dāng)訪問某個序列的索引值小于0或大于等于序列大小時,拋出該異常辆苔。

java.lang.NullPointerException:空指針異常算灸。

java.lang.ArithmeticException:算術(shù)條件異常。譬如:整數(shù)除零等驻啤。

9.java IO流相關(guān)問題

(1)IO流分類:

按流向:輸入流菲驴、輸出流

按操作的數(shù)據(jù)單元:字節(jié)流、字符流

按流的角色:節(jié)點(diǎn)流骑冗、處理流

(2)字節(jié)流和字符流區(qū)別

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赊瞬,一起剝皮案震驚了整個濱河市先煎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巧涧,老刑警劉巖薯蝎,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谤绳,居然都是意外死亡占锯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門缩筛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烟央,“玉大人,你說我怎么就攤上這事歪脏∫杉螅” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵婿失,是天一觀的道長钞艇。 經(jīng)常有香客問我,道長豪硅,這世上最難降的妖魔是什么哩照? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮懒浮,結(jié)果婚禮上飘弧,老公的妹妹穿的比我還像新娘。我一直安慰自己砚著,他們只是感情好次伶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著稽穆,像睡著了一般冠王。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舌镶,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天柱彻,我揣著相機(jī)與錄音,去河邊找鬼餐胀。 笑死哟楷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的否灾。 我是一名探鬼主播卖擅,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了磨镶?” 一聲冷哼從身側(cè)響起溃蔫,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎琳猫,沒想到半個月后伟叛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脐嫂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年统刮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片账千。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡侥蒙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匀奏,到底是詐尸還是另有隱情鞭衩,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布娃善,位于F島的核電站论衍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏聚磺。R本人自食惡果不足惜坯台,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瘫寝。 院中可真熱鬧蜒蕾,春花似錦、人聲如沸焕阿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捣鲸。三九已至瑟匆,卻和暖如春闽坡,著一層夾襖步出監(jiān)牢的瞬間栽惶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工疾嗅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留外厂,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓代承,卻偏偏與公主長得像汁蝶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容