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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 程序員分享java最新面試題及答案

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

更新時間:2020-02-09 11:14:33 來源:動力節點 瀏覽2381次


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


  重載(Overload)和重寫(Override)的區別。重載的方法能否根據返回類型進行區分?


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


  補充:華為的面試題中曾經問過這樣一個問題:為什么不能根據返回類型來區分重載,說出你的答案吧!


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


  答:JVM中類的裝載是由類加載器(ClassLoader)和它的子類來實現的,Java中的類加載器是一個重要的Java運行時系統組件,它負責在運行時查找和裝入類文件中的類。


  補充:


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


  2.類的加載是由類加載器完成的,類加載器包括:根加載器(BootStrap)、擴展加載器(Extension)、系統加載器(System)和用戶自定義類加載器(java.lang.ClassLoader的子類)。從JDK1.2開始,類加載過程采取了父親委托機制(PDM)。PDM更好的保證了Java平臺的安全性,在該機制中,JVM自帶的Bootstrap是根加載器,其他的加載器都有且僅有一個父類加載器。類的加載首先請求父類加載器加載,父類加載器無能為力時才由其子類加載器自行加載。JVM不會向Java程序提供對Bootstrap的引用。下面是關于幾個類加載器的說明:


  a)Bootstrap:一般用本地代碼實現,負責加載JVM基礎核心類庫(rt.jar);


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


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


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


  答:char類型可以存儲一個中文漢字,因為Java中使用的編碼是Unicode(不選擇任何特定的編碼,直接使用字符在字符集中的編號,這是統一的唯一方法),一個char類型占2個字節(16bit),所以放一個中文是沒問題的。


  補充:使用Unicode意味著字符在JVM內部和外部有不同的表現形式,在JVM內部都是Unicode,當這個字符被從JVM內部轉移到外部時(例如存入文件系統中),需要進行編碼轉換。所以Java中有字節流和字符流,以及在字符流和字節流之間進行轉換的轉換流,如InputStreamReader和OutputStreamReader,這兩個類是字節流和字符流之間的適配器類,承擔了編碼轉換的任務;對于C程序員來說,要完成這樣的編碼轉換恐怕要依賴于union(聯合體/共用體)共享內存的特征來實現了。


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


  答:抽象類和接口都不能夠實例化,但可以定義抽象類和接口類型的引用。一個類如果繼承了某個抽象類或者實現了某個接口都需要對其中的抽象方法全部進行實現,否則該類仍然需要被聲明為抽象類。接口比抽象類更加抽象,因為抽象類中可以定義構造器,可以有抽象方法和具體方法,而接口中不能定義構造器而且其中的方法全部都是抽象方法。抽象類中的成員可以是private、默認、protected、public的,而接口中的成員全都是public的。抽象類中可以定義成員變量,而接口中定義的成員變量實際上都是常量。有抽象方法的類必須被聲明為抽象類,而抽象類未必要有抽象方法。


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


  答:都不能。抽象方法需要子類重寫,而靜態的方法是無法被重寫的,因此二者是矛盾的。本地方法是由本地代碼(如C代碼)實現的方法,而抽象方法是沒有實現的,也是矛盾的。synchronized和方法的實現細節有關,抽象方法不涉及實現細節,因此也是相互矛盾的。


  靜態變量和實例變量的區別?


  答:靜態變量是被static修飾符修飾的變量,也稱為類變量,它屬于類,不屬于類的任何一個對象,一個類不管創建多少個對象,靜態變量在內存中有且僅有一個拷貝;實例變量必須依存于某一實例,需要先創建對象然后通過對象才能訪問到它。靜態變量可以實現讓多個對象共享內存。在Java開發中,上下文類和工具類中通常會有大量的靜態成員。


  是否可以從一個靜態(static)方法內部發出對非靜態(non-static)方法的調用?


  答:不可以,靜態方法只能訪問靜態成員,因為非靜態方法的調用要先創建對象,因此在調用靜態方法時可能對象并沒有被初始化。


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


      以上就是動力節點Java培訓機構小編介紹的“程序員分享java最新面試題及答案”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


相關推薦


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


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


Java高級開發工程師面試題


2019史上最全java面試題題庫大全800題


哪有資深java工程師面試題


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 全部免费的毛片在线看美国 | 亚洲视频中文 | 一级特级aa欧美毛片 | 99热久这里都是精品小草 | 免费一级毛片在线播放不收费 | 一级成人a免费视频 | 成人看片免费无限观看视频 | 九一视频在线免费观看 | 久久国产精品一区二区 | 成年午夜视频免费观看视频 | 国产精品久久久久国产精品三级 | 成人爽a毛片在线视频网站 成人爽视频 | 国产成人精品日本亚洲语音1 | 人人干天天操 | 国产精品久久国产精麻豆99网站 | 久久在线中文字幕 | 伊人伊人网 | 日韩激情中文字幕一区二区 | 久久久久久久一线毛片 | 青青青国产色视频在线观看 | 国产成人精品免费午夜 | 国产一区二区精品久久91 | 日韩欧美第一区二区三区 | 性感美女一级毛片 | 日韩一区二区三区精品 | 国产精品久久久久久久y | 88国产精品欧美一区二区三区 | 亚洲五月综合网色九月色 | 另类日本人xxxxbbbb | 欧美另类69xxxxx 视频 | 欧美一级毛片免费看 | 亚洲天天干 | 日韩欧美一区二区久久黑人 | 狠狠色丁香婷婷久久综合考虑 | 妖精视频在线观看网站 | 免看一级a一片成人123 | 成人a毛片视频免费看 | 九九精品在线视频 | 国产午夜亚洲精品久久999 | 久久免费精品国产视频 | 国产chinesehd在线观看 |