本文目錄一覽:
java面試中經常被問到的問題有哪些?
java面試中經常被問到的問題有如下:
1、進程,線程,協程之間的區別是什麼?
簡而言之,進程是程序運行和資源分配的基本單位,一個程序至少有一個進程,一個進程至少有一個線程。進程在執行過程中擁有獨立的內存單元,而多個線程共享內存資源,減少切換次數,從而效率更高。線程是進程的一個實體,是cpu調度和分派的基本單位,是比程序更小的能獨立運行的基本單位。同一進程中的多個線程之間可以並發執行。
2、你了解守護線程嗎?它和非守護線程有什麼區別?
程序運行完畢,jvm會等待非守護線程完成後關閉,但是jvm不會等待守護線程。守護線程最典型的例子就是GC線程。
3、什麼是多線程上下文切換?
多線程的上下文切換是指CPU控制權由一個已經正在運行的線程切換到另外一個就緒並等待獲取CPU執行權的線程的過程。
4、創建兩種線程的方式?他們有什麼區別?
通過實現java.lang.Runnable或者通過擴展java.lang.Thread類。相比擴展Thread,實現Runnable介面可能更優.原因有二:Java不支持多繼承。因此擴展Thread類就代表這個子類不能擴展其他類。而實現Runnable介面的類還可能擴展另一個類。類可能只要求可執行即可,因此繼承整個Thread類的開銷過大。
5、Thread類中的start()和run()方法有什麼區別?
start()方法被用來啟動新創建的線程,而且start()內部調用了run()方法,這和直接調用run()方法的效果不一樣。當你調用run()方法的時候,只會是在原來的線程中調用,沒有新的線程啟動,start()方法才會啟動新線程。
潤和java開發實習面試問什麼
關於Java面試,一般應該會問到下面這些問題。
[編程工具]
你常用的編程工具有哪些?這個問題主要是考察你工作的專業性,你是不是具有大型項目的工作經驗.
一般好的,Java的編程工具,你比如說,Eclipse, netbeans, Intelli J 等等。
[局部變數和類變數的區別]
這個問題主要是考察選手對於scope的概念。回答這個問題,
就是局部變數是在方法裡面定義的。這個變數只能在方法內部才可以被調用。
類變數呢,可以在類的內部,任何地方都可以被調用。類變數還可以添加一些修飾符,限制或者允許外部類調用。
[什麼是繼承? ]
繼承就是說子類可以享有父類的一些定義。
[什麼是封裝?]
封裝是通過類定義的方式,把一些方法和數據包裹起來。
[什麼是多態?]
多態是指一個對象可以通過具體的引用類型來調用父類和子類的一些方法。
這三個問題主要是考察選手對於面向對象編程的概念。
[ Overriding 和 overloading的區別]
這兩種方法在編程中會經常用到。被問的可能性非常大。
Overriding主要用在子類要使用父類的一些方法定義。方法名必須相同,方法參數必須相同, 返回值類型必須相同。使用這種方法, 子類既可以調用父類的方法也可以添加自己個性化的實現。
Overloading主要用在方法這一層次上。具有同樣的方法名,不同的參數類型, 可能會返回不同的數據類型。
[介面和抽象的區別?]
這個問題在面向對象編程裡面也是經常被問到的一個問題。
在Java中,無法實現多類繼承,所以就引入了介面的概念。介面中,主要是類的聲明,沒有實現內容。
抽象類中至少要含有一個抽象方法。這個抽象方法只有聲明沒有實現。抽象類的非抽象方法,需要有實現內容。
[說一下訪問修飾符]
這也是面向對象編程裡面非常重要的一個概念。
private, protected, public。沒有修飾符,就是default。
private只能在本類內部訪問。
protected在本類和子類中訪問。
public在其他類中都可訪問。
default在包內可訪問。
[數組和數組列表的區別?]
[String, StringBuilder, StringBuffer的區別? ]
string不可修改。
string builder可修改,線程不安全的。
string buffer可修改,線程安全的。
[HashMap, HashTable 的區別? ]
都是字典類型。
hash map 是線程不安全的。
hash table 是線程安全的。
[Set 相關的問題]
Set裡面的數據是唯一的。
sorted set是可排序的。
[Queue 相關的問題]
priority queue先進先出。
[Map相關的問題]
有hash map, linked hash map, tree map.
如果你是一個 Java 面試官,你會問哪些問題?
1、談談你對 Java 平台的理解?「Java 是解釋執行」,這句話正確嗎?考點分析:對於這類籠統的問題,你需要盡量表現出自己的思維深入並系統化,Java 知識理解得也比較全面,一定要避免讓面試官覺得你是個「知其然不知其所以然」的人。畢竟明白基本組成和機制,是日常工作中進行問題診斷或者性能調優等很多事情的基礎,相信沒有招聘方會不喜歡「熱愛學習和思考」的面試者。回歸正題,對於 Java 平台的理解,可以從很多方面簡明扼要地談一下,例如:Java 語言特性,包括泛型、Lambda 等語言特性;基礎類庫,包括集合、IO/NIO、網路、並發、安全等基礎類庫。對於我們日常工作應用較多的類庫,面試前可以系統化總結一下,有助於臨場發揮。2、對比Hashtable、HashMap、TreeMap有什麼不同?考點分析:上面的回答,只是對一些基本特徵的簡單總結,針對Map相關可以擴展的問題很多,從各種數據結構、典型應用場景,到程序設計實現的技術考量,尤其是在Java 8里,HashMap本身發生了非常大的變化,這些都是經常考察的方面。很多朋友向我反饋,面試官似乎鍾愛考察HashMap的設計和實現細節,所以今天我會增加相應的源碼解讀,主要專註於下面幾個方面:理解Map相關類似整體結構,尤其是有序數據結構的一些要點。從源碼去分析HashMap的設計和實現要點,理解容量、負載因子等,為什麼需要這些參數,如何影響Map的性能,實踐中如何取捨等。理解樹化改造的相關原理和改進原因。除了典型的代碼分析,還有一些有意思的並發相關問題也經常會被提到,如HashMap在並發環境可能出現無限循環佔用CPU、size不準確等詭異的問題。我認為這是一種典型的使用錯誤,因為HashMap明確聲明不是線程安全的數據結構,如果忽略這一點,簡單用在多線程場景里,難免會出現問題。理解導致這種錯誤的原因,也是深入理解並發程序運行的好辦法。對於具體發生了什麼,你可以參考這篇很久以前的分析,裡面甚至提供了示意圖,我就不再重複別人寫好的內容了。3、Java 提供了哪些 IO 方式? NIO 如何實現多路復用?考點分析:在實際面試中,從傳統 IO 到 NIO、NIO 2,其中有很多地方可以擴展開來,考察點涉及方方面面,比如:基礎 API 功能與設計, InputStream/
程序員小白如何通過Java面試?
1、了解業內招聘要求:多看幾家同類崗位的技術要求,大概就知道用人單位的需求了
2、多找找面試常見技術題:不同企業的面試題各種不同,多去找找,多背背
3、簡歷設計:這個就是要注意在簡歷中體現自己的項目經驗、技術水平
4、面試現場反應:注意自己的著裝、語言表達、技術表達
以上都是在你有專業技術的前提下進行的,如果專業技術就是小白,還是先提升專業技術吧
原創文章,作者:GDVX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145399.html