java程序員面試寶典
JAVA程序員廣義上是指一群以JAVA為謀生手段的軟件開(kāi)發(fā)人員。狹義的說(shuō),是指擁有SUN公司JAVA認證的程序員。面試是通過(guò)書(shū)面、面談或線(xiàn)上交流(視頻、電話(huà))的形式來(lái)考察一個(gè)人的工作能力與綜合素質(zhì),通過(guò)面試可以初步判斷應聘者是否可以融入自己的團隊。是一種經(jīng)過(guò)組織者精心策劃的招聘活動(dòng)。
Java程序員面試寶典
面試例題1:對象與實(shí)例有什么區別?
解析:在Java的內存分配中,對象和實(shí)例是不同的,前者分配在內存堆里,后者分配在堆棧里,至于為什么要這樣分,參考一下其他的資料。對象是不變的東西,它是對客觀(guān)事物的抽象,實(shí)例是對操作對象的引用,你不能直接操作對象。
答案:對象和實(shí)例從宏觀(guān)的角度看,區別是:對象是同類(lèi)事物的一種抽象表現形式,而實(shí)例是對象的具體化,一個(gè)對象可以實(shí)例化很多實(shí)例,對象就是一個(gè)模型,實(shí)例是照著(zhù)這個(gè)模型生產(chǎn)的最終產(chǎn)品。實(shí)際上就是這樣,一個(gè)對象可以實(shí)例化N個(gè)實(shí)例。就像根據一個(gè)模型可以制造多個(gè)實(shí)際的產(chǎn)品一樣。
從內存分配的角度來(lái)看,對象是保存在堆中的,而實(shí)例是存儲在棧中的,實(shí)例其實(shí)只是對象的一個(gè)引用,也就是指向對象的指針。
面試例題2:Java中所有的類(lèi)都繼承了java.lang.Object類(lèi),而在C++中沒(méi)有像java.lang.Object這樣的類(lèi),這是為什么呢?都是面向對象,Java這樣做有什么好處呢?
解析:Java采用的是單根結構,所有的類(lèi)都繼承了java.lang.Object類(lèi)。對于Java這種純面向對象的語(yǔ)言來(lái)說(shuō),這種設計具有很好的靈活性,比如對垃圾收集來(lái)說(shuō)很有利,所有的類(lèi)都具有java.lang.Object類(lèi)具有的方法等。C++沒(méi)有更多這樣的方法,大概是為了向后兼容。向C兼容,滿(mǎn)足它設計上最大的靈活性。
答案:C++的特點(diǎn)是指針,一個(gè)指針可以指向任何的對象、結構、基本類(lèi)型、函數。