- 相關(guān)推薦
Java基礎(chǔ)知識問答
Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。下面小編整理了Java基礎(chǔ)知識問答,希望對大家有幫助!
面向?qū)ο蟮奶攸c
抽象:是或略一個主題中與當(dāng)前目標(biāo)的無關(guān)的因素,一邊充分考慮有關(guān)的內(nèi)容。抽象并不能解決目標(biāo)中所有的問題,只能選擇其中的一部分,忽略其他的部分。抽象包含兩個方面:一是過程抽象;一是數(shù)據(jù)抽象。
繼承:是一種聯(lián)接類的層次模型,允許和鼓勵類的重用,提供了一種明確的共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這叫做類的繼承。心累繼承了原始類的特性,新類稱為原始類的派生類或者是子類,原始類稱為新類的基類或者父類。子類可以從父類那里繼承父類的方法和實現(xiàn)變量,并卻允許新類增加和修改新的方法使之滿足需求。
封裝:就是把過程和數(shù)據(jù)包圍起來。對數(shù)據(jù)的訪問只是允許通過已經(jīng)定義好的界面。面向?qū)ο缶褪腔谶@個概念,即現(xiàn)實世界可以描述為一系列完全自治,封裝的對象,這些對象通過固定受保護(hù)的接口訪問其他對象。
多態(tài)性:是指不同類的對象對同一個請求作出相應(yīng)。多態(tài)性包括參數(shù)多態(tài)和包含多態(tài)。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢。很好的解決了應(yīng)用程序中同名的問題。
int 和 Integer 有什么區(qū)別
java提供了兩種類型:引用類型和原始類型(內(nèi)置類型)。int是java的原始數(shù)據(jù)類型,Integer是java為int提供的封裝類。引用類型和原始類型的行為完全不同,并且他們具有不同的語義,引用類型和原始類型具有不同的特征和用法,他們包括:大小和速度問題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲,當(dāng)引用類型和原始類型有用作某個類的實例數(shù)據(jù)時制定的缺省值。對象應(yīng)用實例變量的缺省值為null,而原始類型實例變量的缺省值與它們的類型有關(guān)。
final、finally、finalize的區(qū)別
final是一種聲明屬性,作用與類、方法和變量;final修飾的變量的值不能夠再改變,final修飾的方面不能被覆蓋,final修飾的類不能被繼承。 finally是異常處理語句的一部分,表示總是執(zhí)行。 finalize是object類的一個子方法,在垃圾回收器執(zhí)行是調(diào)用回收對象的此方法,此方法可以被覆蓋提供資源回收時的其他資源回收。如文件關(guān)閉等。
heap和stack的區(qū)別
棧是一種現(xiàn)行結(jié)構(gòu),其添加和刪除元素應(yīng)在同一段完成,棧按照先進(jìn)后出的方式進(jìn)行處理。堆是棧的一個組成元素。
assert什么時候使用assertion(斷言)在軟件開發(fā)中使用中常見的調(diào)試方式,很多編程語言中都支持這種機(jī)制,在實現(xiàn)中,assertion就是在程序中的一條語句,他對一個boolean表達(dá)式進(jìn)行檢查,一個正確的程序必須保證這個boolean表達(dá)式的值是true。如果該值為false,說迷宮程序已經(jīng)處于不正確的狀態(tài)了,系統(tǒng)將給出警告或者退出。一般來說assertion用來保證程序最基本、關(guān)鍵的正確性,assertion檢查通常在開發(fā)和測試時啟動,為了提高效率,在軟件發(fā)布后,assertion檢查通常是關(guān)閉的。
GC是什么?為什么要有GC?
GC是垃圾回收的意思(gabage collection),內(nèi)存處理器是編程人員容易出現(xiàn)問題的地方,忘記或者錯誤的內(nèi)存回收導(dǎo)致程序或者系統(tǒng)的不穩(wěn)定甚至崩潰,java的GC功能可以自動監(jiān)測對象是否超過作用域從而達(dá)到自動回收內(nèi)存的目的,java語言沒有提供釋放已分配內(nèi)存的俄顯示操作方法。
啟動線程使用run還是start?
啟動一個線程用start方法,使線程所代表的虛擬處理機(jī)處于可運行的狀態(tài),這意味著它可以有JVM(java虛擬機(jī))來調(diào)度和執(zhí)行,這并不意味著線程就會立即執(zhí)行。run方法可以產(chǎn)生必須退出的標(biāo)志來停止一個線程。
垃圾回收機(jī)制的優(yōu)點,并考慮2種回收機(jī)制
java語言中一個顯著的特點就是引入了垃圾回收機(jī)制,使C++程序員最頭痛的內(nèi)存管理問題迎刃而解,他使得java程序員在編寫承學(xué)的哦時候不用再考慮內(nèi)潤管理問題了,由于有了垃圾回收機(jī)制,java中的對象不再有“作用域”的概念,只是在對象引用的時候才有“作用域”,垃圾回收可以有效的防止內(nèi)存泄漏,有效的使用可以使用的內(nèi)存。垃圾回收器通常作為一個單獨的低級別的線程運行,不可預(yù)知的情況下對內(nèi)存堆中已經(jīng)死亡的或者長時間沒有使用的對象進(jìn)行清楚的哦回收,承諾過許愿程序員不能實時的調(diào)用來幾回收器對某個對象或所有對象進(jìn)行垃圾回收,回收機(jī)制有分帶復(fù)制來幾回收和標(biāo)記垃圾回收,增量垃圾回收。
當(dāng)一個對象作為參數(shù)傳遞給一個方法后,此方法可以給便這個對象的屬性,并可以返回變化后的結(jié)果,那么這里到底是值的傳遞還是引用傳遞?
是值得傳遞,java語言中只有值傳遞參數(shù),對一個對象實例作為一個參數(shù)被傳遞到方法中時,參數(shù)的值就是對該對象的引用,對象的內(nèi)容可以在被調(diào)用的方法中改變,但對象的引用是永遠(yuǎn)改變不了的。
構(gòu)造器Constructor是否可以被override?
構(gòu)造器(override)不能被繼承,因此不能重寫overriding,但是可以被重載overloading。
【Java基礎(chǔ)知識問答】相關(guān)文章:
常見的Java問答題08-29
Java 問答面試題09-03
Java基礎(chǔ)知識精選09-07
java基礎(chǔ)知識07-16
Java面試基本問答題09-01
JAVA面試問答題09-04
Java語法基礎(chǔ)知識10-09