大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 程序員分享java最新面試題及答案

程序員分享java最新面試題及答案

更新時(shí)間:2020-02-09 11:14:33 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2582次


程序員分享java最新面試題及答案


  重載(Overload)和重寫(xiě)(Override)的區(qū)別。重載的方法能否根據(jù)返回類型進(jìn)行區(qū)分?


  答:方法的重載和重寫(xiě)都是實(shí)現(xiàn)多態(tài)的方式,區(qū)別在于前者實(shí)現(xiàn)的是編譯時(shí)的多態(tài)性,而后者實(shí)現(xiàn)的是運(yùn)行時(shí)的多態(tài)性。重載發(fā)生在一個(gè)類中,同名的方法如果有不同的參數(shù)列表(參數(shù)類型不同、參數(shù)個(gè)數(shù)不同或者二者都不同)則視為重載;重寫(xiě)發(fā)生在子類與父類之間,重寫(xiě)要求子類被重寫(xiě)方法與父類被重寫(xiě)方法有相同的返回類型,比父類被重寫(xiě)方法更好訪問(wèn),不能比父類被重寫(xiě)方法聲明更多的異常(里氏代換原則)。重載對(duì)返回類型沒(méi)有特殊的要求。


  補(bǔ)充:華為的面試題中曾經(jīng)問(wèn)過(guò)這樣一個(gè)問(wèn)題:為什么不能根據(jù)返回類型來(lái)區(qū)分重載,說(shuō)出你的答案吧!


  描述一下JVM加載class文件的原理機(jī)制?


  答:JVM中類的裝載是由類加載器(ClassLoader)和它的子類來(lái)實(shí)現(xiàn)的,Java中的類加載器是一個(gè)重要的Java運(yùn)行時(shí)系統(tǒng)組件,它負(fù)責(zé)在運(yùn)行時(shí)查找和裝入類文件中的類。


  補(bǔ)充:


  1.由于Java的跨平臺(tái)性,經(jīng)過(guò)編譯的Java源程序并不是一個(gè)可執(zhí)行程序,而是一個(gè)或多個(gè)類文件。當(dāng)Java程序需要使用某個(gè)類時(shí),JVM會(huì)確保這個(gè)類已經(jīng)被加載、連接(驗(yàn)證、準(zhǔn)備和解析)和初始化。類的加載是指把類的.class文件中的數(shù)據(jù)讀入到內(nèi)存中,通常是創(chuàng)建一個(gè)字節(jié)數(shù)組讀入.class文件,然后產(chǎn)生與所加載類對(duì)應(yīng)的Class對(duì)象。加載完成后,Class對(duì)象還不完整,所以此時(shí)的類還不可用。當(dāng)類被加載后就進(jìn)入連接階段,這一階段包括驗(yàn)證、準(zhǔn)備(為靜態(tài)變量分配內(nèi)存并設(shè)置默認(rèn)的初始值)和解析(將符號(hào)引用替換為直接引用)三個(gè)步驟。最后JVM對(duì)類進(jìn)行初始化,包括:1如果類存在直接的父類并且這個(gè)類還沒(méi)有被初始化,那么就先初始化父類;2如果類中存在初始化語(yǔ)句,就依次執(zhí)行這些初始化語(yǔ)句。


  2.類的加載是由類加載器完成的,類加載器包括:根加載器(BootStrap)、擴(kuò)展加載器(Extension)、系統(tǒng)加載器(System)和用戶自定義類加載器(java.lang.ClassLoader的子類)。從JDK1.2開(kāi)始,類加載過(guò)程采取了父親委托機(jī)制(PDM)。PDM更好的保證了Java平臺(tái)的安全性,在該機(jī)制中,JVM自帶的Bootstrap是根加載器,其他的加載器都有且僅有一個(gè)父類加載器。類的加載首先請(qǐng)求父類加載器加載,父類加載器無(wú)能為力時(shí)才由其子類加載器自行加載。JVM不會(huì)向Java程序提供對(duì)Bootstrap的引用。下面是關(guān)于幾個(gè)類加載器的說(shuō)明:


  a)Bootstrap:一般用本地代碼實(shí)現(xiàn),負(fù)責(zé)加載JVM基礎(chǔ)核心類庫(kù)(rt.jar);


  b)Extension:從java.ext.dirs系統(tǒng)屬性所指定的目錄中加載類庫(kù),它的父加載器是Bootstrap;


  c)System:又叫應(yīng)用類加載器,其父類是Extension。它是應(yīng)用最廣泛的類加載器。它從環(huán)境變量classpath或者系統(tǒng)屬性java.class.path所指定的目錄中記載類,是用戶自定義加載器的默認(rèn)父加載器。


  char型變量中能不能存貯一個(gè)中文漢字?為什么?


  答:char類型可以存儲(chǔ)一個(gè)中文漢字,因?yàn)镴ava中使用的編碼是Unicode(不選擇任何特定的編碼,直接使用字符在字符集中的編號(hào),這是統(tǒng)一的唯一方法),一個(gè)char類型占2個(gè)字節(jié)(16bit),所以放一個(gè)中文是沒(méi)問(wèn)題的。


  補(bǔ)充:使用Unicode意味著字符在JVM內(nèi)部和外部有不同的表現(xiàn)形式,在JVM內(nèi)部都是Unicode,當(dāng)這個(gè)字符被從JVM內(nèi)部轉(zhuǎn)移到外部時(shí)(例如存入文件系統(tǒng)中),需要進(jìn)行編碼轉(zhuǎn)換。所以Java中有字節(jié)流和字符流,以及在字符流和字節(jié)流之間進(jìn)行轉(zhuǎn)換的轉(zhuǎn)換流,如InputStreamReader和OutputStreamReader,這兩個(gè)類是字節(jié)流和字符流之間的適配器類,承擔(dān)了編碼轉(zhuǎn)換的任務(wù);對(duì)于C程序員來(lái)說(shuō),要完成這樣的編碼轉(zhuǎn)換恐怕要依賴于union(聯(lián)合體/共用體)共享內(nèi)存的特征來(lái)實(shí)現(xiàn)了。


  抽象類(abstractclass)和接口(interface)有什么異同?


  答:抽象類和接口都不能夠?qū)嵗梢远x抽象類和接口類型的引用。一個(gè)類如果繼承了某個(gè)抽象類或者實(shí)現(xiàn)了某個(gè)接口都需要對(duì)其中的抽象方法全部進(jìn)行實(shí)現(xiàn),否則該類仍然需要被聲明為抽象類。接口比抽象類更加抽象,因?yàn)槌橄箢愔锌梢远x構(gòu)造器,可以有抽象方法和具體方法,而接口中不能定義構(gòu)造器而且其中的方法全部都是抽象方法。抽象類中的成員可以是private、默認(rèn)、protected、public的,而接口中的成員全都是public的。抽象類中可以定義成員變量,而接口中定義的成員變量實(shí)際上都是常量。有抽象方法的類必須被聲明為抽象類,而抽象類未必要有抽象方法。


  抽象的(abstract)方法是否可同時(shí)是靜態(tài)的(static),是否可同時(shí)是本地方法(native),是否可同時(shí)被synchronized修飾?


  答:都不能。抽象方法需要子類重寫(xiě),而靜態(tài)的方法是無(wú)法被重寫(xiě)的,因此二者是矛盾的。本地方法是由本地代碼(如C代碼)實(shí)現(xiàn)的方法,而抽象方法是沒(méi)有實(shí)現(xiàn)的,也是矛盾的。synchronized和方法的實(shí)現(xiàn)細(xì)節(jié)有關(guān),抽象方法不涉及實(shí)現(xiàn)細(xì)節(jié),因此也是相互矛盾的。


  靜態(tài)變量和實(shí)例變量的區(qū)別?


  答:靜態(tài)變量是被static修飾符修飾的變量,也稱為類變量,它屬于類,不屬于類的任何一個(gè)對(duì)象,一個(gè)類不管創(chuàng)建多少個(gè)對(duì)象,靜態(tài)變量在內(nèi)存中有且僅有一個(gè)拷貝;實(shí)例變量必須依存于某一實(shí)例,需要先創(chuàng)建對(duì)象然后通過(guò)對(duì)象才能訪問(wèn)到它。靜態(tài)變量可以實(shí)現(xiàn)讓多個(gè)對(duì)象共享內(nèi)存。在Java開(kāi)發(fā)中,上下文類和工具類中通常會(huì)有大量的靜態(tài)成員。


  是否可以從一個(gè)靜態(tài)(static)方法內(nèi)部發(fā)出對(duì)非靜態(tài)(non-static)方法的調(diào)用?


  答:不可以,靜態(tài)方法只能訪問(wèn)靜態(tài)成員,因?yàn)榉庆o態(tài)方法的調(diào)用要先創(chuàng)建對(duì)象,因此在調(diào)用靜態(tài)方法時(shí)可能對(duì)象并沒(méi)有被初始化。


程序員分享java最新面試題及答案


      以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“程序員分享java最新面試題及答案”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


相關(guān)推薦


最新最全java面試題及答案(初級(jí)到高級(jí))


史上最全的中高級(jí)JAVA工程師面試題及答案匯總


Java高級(jí)開(kāi)發(fā)工程師面試題


2019史上最全java面試題題庫(kù)大全800題


哪有資深java工程師面試題


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲国产成人久久笫一页 | 99re热线精品视频 | 久久久久久久国产视频 | 男人的天堂在线精品视频 | 成人短视频在线免费观看 | 欧美激情 亚洲 | 国产成人综合久久 | 成人国产欧美精品一区二区 | 今天的恋爱未删减在线观看 | 天天碰天天操 | 欧美综合图片 | 91中文字幕在线视频 | 亚洲视频在线a视频 | 最新视频 - 88av | 美国一级毛片aa | 91视频夜色| 国产高清国内精品福利 | 久草视频免费在线看 | 久草手机视频 | 91成人免费福利网站在线 | 欧美亚洲日本国产综合网 | 午夜私人影院粉色视频我要 | 热e国产 | 中文字幕福利视频 | 韩国午夜影院 | 国产精品.com| 日本边添边爱边做视频 | 特黄特色一级aa毛片免费观看 | 国产在线视频不卡 | 元龙第三季免费观看 | 亚洲国产精品久久久久婷婷软件 | 精品国产一区二区三区香蕉事 | 久久99精品福利久久久 | 狠狠色噜噜狠狠色综合久 | 成人免费牛牛在线视频 | 天啪天天久久天天综合啪 | 国产一区二区中文字幕 | 久久精品国产eeuss | 久久久久亚洲国产 | 精品久久久久久无码中文字幕 | 美女视频很黄很暴黄是免费的 |