招聘頻道
當前位置:首頁 > 名企招聘 > 招聘信息 > Java面試題,教你對抗面試大佬

Java面試題,教你對抗面試大佬

時間:2018-09-29 19:45:45作者:魔據大數據學院

IT行業的筆試十分重要,即使你掌握了一定的技能,如果在面試中發揮的不好,還是會與心儀的工作失之交臂,下面魔據小編總結了一些企業常考的Java面試題,教你成功通過面試官的層層拷問。如何精通大數據Java?要做到這幾點。

1.什么是Java虛擬機?為什么Java被稱作是“平臺無關的編程語言”?

Java虛擬機是一個可以執行Java字節碼的虛擬機進程。Java源文件被編譯成能被Java虛擬機執行的字節碼文件。

Java被設計成允許應用程序可以運行在任意的平臺,而不需要程序員為每一個平臺單獨重寫或者是重新編譯。Java虛擬機讓這個變為可能,因為它知道底層硬件平臺的指令長度和其他特性。

2.“static”關鍵字是什么意思?Java中是否可以覆蓋(override)一個private或者是static的方法?

“static”關鍵字表明一個成員變量或者是成員方法可以在沒有所屬的類的實例變量的情況下被訪問。

Java中static方法不能被覆蓋,因為方法覆蓋是基于運行時動態綁定的,而static方法是編譯時靜態綁定的。static方法跟類的任何實例都不相關,所以概念上不適用。

 

Java面試題,教你對抗面試大佬

Java面試題教你對抗面試大佬

3.是否可以在static環境中訪問非static變量?

static變量在Java中是屬于類的,它在所有的實例中的值是一樣的。當類被Java虛擬機載入的時候,會對static變量進行初始化。如果你的代碼嘗試不用實例來訪問非static的變量,編譯器會報錯,因為這些變量還沒有被創建出來,還沒有跟任何實例關聯上。

3.什么是值傳遞和引用傳遞?

對象被值傳遞,意味著傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。

對象被引用傳遞,意味著傳遞的并不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。

4.進程和線程的區別是什么?

進程是執行著的應用程序,而線程是進程內部的一個執行序列。一個進程可以有多個線程。線程又叫做輕量級進程。

5.創建線程有幾種不同的方式?哪一種更好?為什么?

有三種方式可以用來創建線程:

繼承Thread類

實現Runnable接口

應用程序可以使用Executor框架來創建線程池

實現Runnable接口這種方式更好,因為這不需要繼承Thread類。在應用設計中已經繼承了別的對象的情況下,這需要多繼承(而Java不支持多繼承),只能實現接口。同時,線程池也是非常高效的,很容易實現和使用。

6.Iterator和ListIterator的區別是什么?

Iterator可用來遍歷Set和List集合,但是ListIterator只能用來遍歷List。

Iterator對集合只能是前向遍歷,ListIterator既可以前向也可以后向。

ListIterator實現了Iterator接口,并包含其他的功能,比如:增加元素,替換元素,獲取前一個和后一個元素的索引,等等。

7.Java中的HashMap的工作原理是什么?

Java中的HashMap是以鍵值對(key-value)的形式存儲元素的。HashMap中的每個元素都是一個Entry,這些key-value存在于map的entry數組中,HashMap需要一個hash函數,它使用hashCode()和equals()方法來向集合/從集合添加和檢索元素。當調用put()方法的時候,HashMap會計算key的hash值,然后把鍵值對存儲在集合中合適的索引上。如果key已經存在了,value會被更新成新值。

不同key的hash值是可能會相同的,這時之前相同key的值會被移到entry的后面,entry是一個類似鏈表的結構。因此HashMap是一個數組加鏈表的結合體。

 

8.HashMap和Hashtable有什么區別?

HashMap和Hashtable都實現了Map接口,因此很多特性非常相似。但是,他們有以下不同點:

HashMap允許鍵和值是null,而Hashtable不允許鍵或者值是null。

Hashtable是同步的,而HashMap不是。因此,HashMap適合于單線程環境,而Hashtable適合于多線程環境。

9.數組(Array)和列表(ArrayList)有什么區別?什么時候應該使用Array而不是ArrayList?

下面列出了Array和ArrayList的不同點:Array可以包含基本類型和對象類型,ArrayList只能包含對象類型。Array大小是固定的,ArrayList的大小是動態變化的。ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。

對于基本類型數據,集合使用自動裝箱來減少編碼工作量。但是,當處理固定大小的基本數據類型的時候,這種方式相對比較慢。

10.HashSet和TreeSet有什么區別?

HashSet是由一個hash表來實現的,因此,它的元素是無序的。TreeSet是由一個樹形的結構來實現的,它里面的元素是有序的。

俗話說不打無準備之仗,在面試前做好充足的準備,多看一些面試題,知道如何進行回答,這樣的話在面試時就可以從容面對,順利通過面試,得到心儀的崗位。

 相關推薦:

上海有沒有靠譜的Java大數據培訓機構?

Java大數據行業的發展前景怎么樣?

Java 大數據培訓課程有什么入門技巧?


學習大數據敬請關注魔據教育微信二維碼。
魔據教育微信二維碼

【版權與免責聲明】如發現內容存在版權問題,煩請提供相關信息發郵件至[email protected],我們將及時溝通與處理。本站內容除非來源注明魔據教育,否則均為網友轉載,涉及言論、版權與本站無關。

全國咨詢熱線:400-690-5006,值班手機:18501996998(7*24小時)

在線咨詢:李老師QQ(226594285),陳老師QQ(428683440)

企業合作服務專線:010-82340234-821, 院校合作洽談專線:010-82340234

Copyright 2001-2017 魔據教育 - 北京華育興業科技有限公司 版權所有,京ICP備17018991號-2

免費在線咨詢立即咨詢

免費索取技術資料立即索取

大數據技術交流QQ:226594285

電話咨詢010-82340234

119期两码中特免费公开