1. 程式人生 > >JAVA特性面試題:

JAVA特性面試題:

ins 多態 面向 人在 結構 流行 簡要介紹 基本 亮點

1.簡要介紹java程序的健壯性。

答:JAVA程序會在編譯和運行的時候自動的檢測可能出現的錯誤,而且它是一種強類型語言,對於類型的檢查很嚴格,而且它的垃圾回收機制也有效的避免了內存的泄漏。

2.為什麽說java語言是完全面向對象的?(其實我覺得它不是完全面向對象的)

答:因為它不支持任何面向過程的程序設計技術它的所有程序設計技術都是用類來實現的。

另答:因為它有8種簡單數據類型不是面向對象的,可以直接使用它,用static申明的變量或方法不是面向對象的,因為它不屬於任何一個對象,要調用它可以直接使用,不用對它進行實例化(這種方法還在爭論中)。

3.簡要介紹java如何實現安全性。

答:首先JAVA刪除了指針這就避免了非法的內存操作,所有對內存的操作都必須通過對象的實例來實現。而且當我們從網上下載代碼執行是它的安全系統能確保惡意程序不會隨便訪問我們本地計算機的資源。

4.為什麽說java是解釋性的?

答:因為我們在執行JAVA文件時,編譯器會先把代碼譯成字節碼文件,這是一種中間代碼,然後JAVA解釋器才進行執行。

5.簡要介紹java的平臺無關性。

答:JAVA程序是在虛擬機上執行的,只要安裝了JAVA虛擬機它就可以以字節碼的形式在任何平臺上執行。

6.簡要介紹java的多態性。

答:多態性是指同名的不同方法在程序中共存,系統根據不同的情況調用不同的方法實現不同的功能。實現多態性的方法有兩種:覆蓋實現,重載實現。

7.簡要介紹java是強類型檢查語言。

答:JAVA對數據類型的檢查非常嚴格,在定義和用變量時必須先指定其類型而且它只允許數據類型的向上提升,而且不允許出現會出現數據丟失的附值(如把小數附給整形)。

8.int 和 Integer有什麽區別?

答:int是簡單數據類型(整形)而Integer是整形的封裝類。

9.簡要介紹String和StringBuffer的區別?

答:String類代表不可變字符串。在值創建之後就不能被改變。而StringBuffer是可變的字符序列,初始容量16字節,通過某些方法可改變其內容和長度。

10.簡要介紹java的垃圾回收機制。

答:JAVA的垃圾回收機制就是:當一個對象沒有任何引用時,該對象便會啟動垃圾回收器調用finalize方法以配置系統資源或執行相關的清除操作。

1、面向對象編程(OOP):OOP最重要的思想是類,類是模板,從類中構造一個對象,即創建了這個類的一個實例;

2、封裝:是把數據和行為結合在一起,並對對象使用者隱藏數據的實現過程,通常一個對象中的數據叫他的實例字段(instance field) ;

3、繼承:Java中允許在已經存在的類的基礎上構建新的類,當你繼承一個已經存在的類時,那麽你就復用了這個類的方法和字段,同時你可以在新類中添加新的方法和字段;

4、多態:在java中,對象變量是多態的;需要註意的是java中不支持多重繼承;

5、類之間的關系:

  • use-a :依賴關系 ;

  • has-a :聚合關系 ;

  • is-a : 繼承關系--例:A類繼承了B類,此時A類不僅有了B類的方法,還有其自己的方法;

6、構造對象使用構造器:構造器是一種特殊的方法,它的作用是構造對象並對其初始化,

  • 構造器特點:構造器可以有0個,一個或多個參數 ;

  • 構造器和類名稱是相同的;

  • 一個類可以有多個構造器;

  • 構造器沒有返回值;

  • 構造器一定是和new運算符一起使用的;

技術分享圖片

7、包(package):Java允許把一個或多個類放在一起成為一組,稱作為包,以便於更好的管理,標準Java庫分為許多包如java.lang、java.util、java,net等,包是分層次的,所有的java包都在java和javax包層次內;

8、重載:當多個方法具有相同的名字而含有不同的參數時,這時就發生了重載,編譯器會選出調用哪個方法;

9、健壯特性:Java采取了一個安全指針模型,能有效防止重寫內存和數據崩潰;

10、安全:Java可以用來構建防病毒和防攻擊的系統,事實證明Java在防毒方面做的比較好;

11、可移植性:Java中對基本數據結構類型的大小和算法都有嚴格的規定,所以有很好的可移植性;

12、多線程:由於Java的機制,它處理多線程的過程很簡單,Java把多線程實現交給底下操作系統或線程程序完成,所以多線程是Java作為服務器端開發語言的流行原因之一;

13、動態綁定:這是Java調用對象方法的機制;

14、Java中的每一個類都是從Object類擴展而來的;

15、內部類:一個內部類的定義是定義在另一個內部類中;

經驗多的希望有一些深度或者廣度的積累。比如說某些領域非常專註/專業,或者說在整體上有非常全面的認識和了解。工作時間長了就需要有一定的積累,不然怎麽能夠突出自己的特點呢?做互聯網的就需要對性能、並發、分布式等專業領域有一些了解或者研究,哪怕有一些心得也不錯。做企業開發的就需要對行業、穩定性、工具、理論等有些獨有的理解,哪怕很初級、幼稚也行。具體點怎麽說,比如你每天都是用struts/spring/hibernate/ibatis等等,那麽對這些原理是否了解?背後的思想是否了解?



業界的認識和評測、比較是否了解?而不是僅僅知道怎麽調用API,這遠遠不夠。如果能夠研究下源碼,寫一個類似的系統就更好了。說白了就是能夠透過工具/技術本身發現一些規律或者說認識,剩下來的就是積累,也就是我們通常說的經驗。還有一個方面就是對行業趨勢的了解。技術不能夠僅僅關註於技術本身,還需要對業績的動態、趨勢有些關註,這樣才能不至於技術不斷的更新而落後。這並不是說總是去追求新技術、新軟件、新工具等,而是關註行業本身的發展。



另外還有一個很重要的經驗積累,那就是解決問題的能力。很多同學同時覺得自己做了很多事情,但是讓他說一兩點比較突出的事情,就說不出來了,總是歸結於事情本身比較簡單,沒有更多的發現和挖掘。其實有時候面試的人只需要了解當初解決問題的過程就行,從中發現個人在裏面做了什麽、怎麽做、收獲了什麽。這就是經驗的積累。企業歸根結底是需要員工作做貢獻的,因此需要有經驗的人來幫助解決問題,那麽曾經解決問題的能力和思路就很重要了。



對於沒有多少經驗的同學,比如剛畢業或者實習生等,那麽就需要基礎很好,然後有一些個人的認識。這些經驗少的java同學一般面試者都不會為難他們,只需要把知道的、認識到的告訴面試者就行了,從而讓面試者能夠看到發展的潛力。很多人還是喜歡培養那些有發展潛力的同學,這些同學的進步都是非常迅速的。我個人總結其實只有一點,那就是要有“亮點”。說白了就是有自己獨特的認識和理解等才能在眾多差不多的同學中脫穎而出。既然不能做全才,那麽就做“專才”。這些java找工作心得體驗分享希望能助你找到一份好工作。總之,面試時技能是基礎,表達是輔助。是塊金子,在哪裏都會放出光彩!

JAVA特性面試題: