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