2017年經(jīng)典的JAVA面試題及答案
20世紀90年代,硬件領(lǐng)域出現了單片式計算機系統,這種價(jià)格低廉的系統一出現就立即引起了自動(dòng)控制領(lǐng)域人員的注意,因為使用它可以大幅度提升消費類(lèi)電子產(chǎn)品(如電視機頂盒、面包烤箱、移動(dòng)電話(huà)等)的智能化程度。yjbys小編下面為大家收集了一些經(jīng)典的JAVA面試題及答案,希望大家喜歡!
封裝
封裝給對象提供了隱藏內部特性和行為的能力。對象提供一些能被其他對象訪(fǎng)問(wèn)的方法來(lái)改變它內部的數據。在Java當中,有3種修飾符:public,private和protected。每一種修飾符給其他的位于同一個(gè)包或者不同包下面對象賦予了不同的訪(fǎng)問(wèn)權限。
多態(tài)
多態(tài)是編程語(yǔ)言給不同的底層數據類(lèi)型做相同的接口展示的一種能力。一個(gè)多態(tài)類(lèi)型上的操作可以應用到其他類(lèi)型的值上面。
繼承
繼承給對象提供了從基類(lèi)獲取字段和方法的能力。繼承提供了代碼的重用行,也可以在不修改類(lèi)的情況下給現存的類(lèi)添加新特性。
抽象
抽象是把想法從具體的實(shí)例中分離出來(lái)的步驟,因此,要根據他們的功能而不是實(shí)現細節來(lái)創(chuàng )建類(lèi)。Java支持創(chuàng )建只暴漏接口而不包含方法實(shí)現的抽象的類(lèi)。這種抽象技術(shù)的主要目的是把類(lèi)的行為和實(shí)現細節分離開(kāi)。
抽象和封裝的不同點(diǎn)
抽象和封裝是互補的概念。一方面,抽象關(guān)注對象的行為。另一方面,封裝關(guān)注對象行為的細節。一般是通過(guò)隱藏對象內部狀態(tài)信息做到封裝,因此,封裝可以看成是用來(lái)提供抽象的一種策略。
常見(jiàn)的Java問(wèn)題
1.什么是Java虛擬機?為什么Java被稱(chēng)作是“平臺無(wú)關(guān)的編程語(yǔ)言”?
Java虛擬機是一個(gè)可以執行Java字節碼的虛擬機進(jìn)程。Java源文件被編譯成能被Java虛擬機執行的字節碼文件。
Java被設計成允許應用程序可以運行在任意的平臺,而不需要程序員為每一個(gè)平臺單獨重寫(xiě)或者是重新編譯。Java虛擬機讓這個(gè)變?yōu)榭赡,因為它知道底層硬件平臺的指令長(cháng)度和其他特性。
2.JDK和JRE的區別是什么?
Java運行時(shí)環(huán)境(JRE)是將要執行Java程序的Java虛擬機。它同時(shí)也包含了執行applet需要的瀏覽器插件。Java開(kāi)發(fā)工具包(JDK)是完整的Java軟件開(kāi)發(fā)包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java調試器),可以讓開(kāi)發(fā)者開(kāi)發(fā)、編譯、執行Java應用程序。
3.”static”關(guān)鍵字是什么意思?Java中是否可以覆蓋(override)一個(gè)private或者是static的方法?
“static”關(guān)鍵字表明一個(gè)成員變量或者是成員方法可以在沒(méi)有所屬的類(lèi)的實(shí)例變量的情況下被訪(fǎng)問(wèn)。
Java中static方法不能被覆蓋,因為方法覆蓋是基于運行時(shí)動(dòng)態(tài)綁定的,而static方法是編譯時(shí)靜態(tài)綁定的。static方法跟類(lèi)的任何實(shí)例都不相關(guān),所以概念上不適用。
4.是否可以在static環(huán)境中訪(fǎng)問(wèn)非static變量?
static變量在Java中是屬于類(lèi)的,它在所有的實(shí)例中的值是一樣的。當類(lèi)被Java虛擬機載入的時(shí)候,會(huì )對static變量進(jìn)行初始化。如果你的代碼嘗試不用實(shí)例來(lái)訪(fǎng)問(wèn)非static的變量,編譯器會(huì )報錯,因為這些變量還沒(méi)有被創(chuàng )建出來(lái),還沒(méi)有跟任何實(shí)例關(guān)聯(lián)上。
【經(jīng)典的JAVA面試題及答案】相關(guān)文章:
java面試題2017及答案03-06
Java main方法面試題及答案03-14
NIIT認證Java面試題及答案03-30
高級Java面試題及答案201602-26
2017年java面試題及答案03-09
Java工程師面試題及答案10-25
2017年最新java面試題及答案03-09