更新時間:2022-12-22 14:27:03 來源:動力節點 瀏覽1285次
2023新的一年已經開始,時間晃眼就過去了,有的同學已經為新年的跳槽早早做足了準備,而有的同學還在臨陣磨槍中,想必看到這篇文章的你,也是為了新的開始而做準備呢吧,現在的問題是, 需要了解到什么樣的面試題才能讓我們后面的就業更加的順利呢。這些都是小編整理的高頻面試題,希望可以幫助到大家:
1、創建socket通訊的步驟?
1、 服務器程序創建一個ServerSocket,然后再用accept方法等待客戶來連接
2、 客戶端程序創建一個Socket并請求與服務器建立連接
3、 服務器接收客戶的連接請求,并創建一個新的Socket與該客戶建立專線連接
4、 剛才建立了連接的兩個Socket在一個線程上對話
5、 服務器開始等待新的連接請求
2、Java 中 sleep 方法和 wait 方法的區別?
雖然兩者都是用來暫停當前運行的線程,但是 sleep() 實際上只是短暫停頓,因為它不會釋放鎖,而 wait() 意味著條件等待,這就是為什么該方法要釋放鎖,因為只有這樣,其他等待的線程才能在滿足條件時獲取到該鎖。
3、程序計數器(線程私有)
一塊較小的內存空間, 是當前線程所執行的字節碼的行號指示器,每條線程都要有一個獨立的程序計數器,這類內存也稱為“線程私有” 的內存。
正在執行 java 方法的話,計數器記錄的是虛擬機字節碼指令的地址(當前指令的地址) 。如果還是 Native 方法,則為空。
這個內存區域是唯一一個在虛擬機中沒有規定任何 OutOfMemoryError 情況的區域。
4、什么是線程調度器(Thread Scheduler)和時間分片(Time Slicing)?
線程調度器是一個操作系統服務,它負責為Runnable狀態的線程分配CPU時間。一旦我們創建一個線程并啟動它,它的執行便依賴于線程調度器的實現。時間分片是指將可用的CPU時間分配給可用的Runnable線程的過程。分配CPU時間可以基于線程優先級或者線程等待的時間。線程調度并不受到Java虛擬機控制,所以由應用程序來控制它是更好的選擇(也就是說不要讓你的程序依賴于線程的優先級)。
5、迭代器 Iterator 是什么?
Iterator 接口提供遍歷任何 Collection 的接口。我們可以從一個 Collection 中使用迭代器方法來獲取迭代器實例。迭代器取代了 Java 集合框架中的 Enumeration,迭代器允許調用者在迭代過程中移除元素。
因為所有Collection接繼承了Iterator迭代器
6、線程的 sleep()方法和 yield()方法有什么區別?
1、 sleep()方法給其他線程運行機會時不考慮線程的優先級,因此會給低優先級的線程以運行的機會;yield()方法只會給相同優先級或更高優先級的線程以運行的機會;
2、 線程執行 sleep()方法后轉入阻塞(blocked)狀態,而執行 yield()方法后轉入就緒(ready)狀態;
3、 sleep()方法聲明拋出 InterruptedException,而 yield()方法沒有聲明任何異常;
4、 sleep()方法比 yield()方法(跟操作系統 CPU 調度相關)具有更好的可移植性,通常不建議使用yield()方法來控制并發線程的執行。
7、Java 中能創建 volatile 數組嗎?
能,Java 中可以創建 volatile 類型數組,不過只是一個指向數組的引用,而不是整個數組。意思是,如果改變引用指向的數組,將會受到 volatile 的保護,但是如果多個線程同時改變數組的元素,volatile 標示符就不能起到之前的保護作用了。
8、java中equals方法的用法以及==的用法
tech.souyunku.com/bluestorm/a…
9、如何創建一個json對象?
使用{}實例化一個json對象,json對象多個元素使用逗號隔開,每個元素都是一個鍵值對
10、如何判斷對象是否是垃圾?
**引用計數:**在對象中添加一個引用計數器,如果被引用計數器加 1,引用失效時計數器減 1,如果計數器為 0 則被標記為垃圾。原理簡單,效率高,但是在 Java 中很少使用,因為存在對象間循環引用的問題,導致計數器無法清零。
**可達性分析:**主流語言的內存管理都使用可達性分析判斷對象是否存活?;舅悸肥峭ㄟ^一系列稱為 GC Roots 的根對象作為起始節點集,從這些節點開始,根據引用關系向下搜索,搜索過程走過的路徑稱為引用鏈,如果某個對象到 GC Roots 沒有任何引用鏈相連,則會被標記為垃圾??勺鳛?GC Roots 的對象包括虛擬機棧和本地方法棧中引用的對象、類靜態屬性引用的對象、常量引用的對象。
以上就是“一些大廠高頻出現的Java高級面試題及答案”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習