您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java基礎面試題是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java基礎面試題是什么”吧!
概括的解釋下線程的幾種狀態
就緒(Runnable):線程準備運行,不一定立馬就能開始執行。
運行中(Running):進程正在執行線程的代碼。
等待中(Waiting):線程處于阻塞的狀態,等待外部的處理結束。
睡眠中(Sleeping):線程被強制睡眠。
I/O阻塞(Blocked on I/O):等待I/O操作完成。
同步阻塞(Blocked on Synchronization):等待獲取鎖。
死亡(Dead):線程完成了執行。
Java集合類里面基本的接口有哪些
Collection:代表一組對象,每一個對象都是它的子元素。
Set:不包含重復元素的Collection。
List:有順序的collection,并且可以包含重復元素。
Map:可以把鍵(key)映射到值(value)的對象,鍵不能重復。
Iterator和ListIterator的區別
Iterator可用來遍歷Set和List集合,但是ListIterator只能用來遍歷List。
Iterator對集合只能是前向遍歷,ListIterator既可以前向遍歷也可以后向遍歷。
ListIterator實現了Iterator接口,并包含其他的功能,比如:增加、替換元素,獲取前一個和后一個元素的索引等等。
Enumeration和Iterator的區別
java中的集合類都提供了返回Iterator的方法,就是迭代器,它和Enumeration(枚舉)的主要區別其實就是Iterator可以刪除元素,但是Enumration卻不能。
使用Iterator來遍歷集合時,應使用Iterator的remove()方法來刪除集合中的元素,使用集合的remove()方法將拋出ConcurrentModificationException異常。
Enumeration接口的功能和Iterator接口的功能是重復的。此外,Iterator 接口添加了一個可選的移除操作,并使用較短的方法名。新的實現應該優先考慮使用Iterator接口而不是Enumeration接口。
Enumeration速度是Iterator的2倍,同時占用更少的內存。但是,Iterator遠遠比Enumeration安全,因為其他線程不能夠修改正在被iterator遍歷的集合里面的對象。
介紹一下HTTP的響應結構
請求報文的組成:
請求方法。
請求的資源的URI。
協議版本。
可選的請求首部字段。
內容實體。
響應報文的組成:
協議版本。
狀態碼。
用于解釋狀態碼的原因短語。
可選的響應首部字段。
實體主體。
響應:
響應碼:回應客戶端此次響應是否成功。如:404(找不到請求的資源),500(服務器內部錯誤),200(成功響應)等。
消息頭:服務器與客戶端通信的暗碼,告訴客戶端該怎么執行某些操作。
響應正文:傳遞服務器響應給客戶端要顯示的內容,可以是下載文件或者顯示界面。
final、finalize和finally各自的作用
final是一個修飾符,可以修飾變量、方法和類。如果 final 修飾變量,意味著該變量的值在初始化后不能被改變。
finalize方法是在對象被回收之前調用的方法,給對象自己最后一個復活的機會,但是什么時候調用 finalize 沒有保證。
finally是一個關鍵字,與try和catch一起用于異常的處理。finally塊一定會被執行,無論在try塊中是否有發生異常。
說一下你了解的幾種進程間的通信方式
管道pipe:管道是一種半雙工的通信方式,數據只能單向流動,而且只能在具有親緣關系的進程間使用。進程的親緣關系通常是指父子進程關系。
高級管道popen:將另一個程序當做一個新的進程在當前程序進程中啟動,則它算是當前程序的子進程,這種方式我們成為高級管道方式。
有名管道named pipe :有名管道也是半雙工的通信方式,但是它允許無親緣關系進程間的通信。
消息隊列MessageQueue:消息隊列是由消息的鏈表,存放在內核中并由消息隊列標識符標識。消息隊列克服了信號傳遞信息少、管道只能承載無格式字節流以及緩沖區大小受限等缺點。
共享存儲SharedMemory:共享內存就是映射一段能被其他進程所訪問的內存,這段共享內存由一個進程創建,但多個進程都可以訪問。共享內存是最快的 IPC 方式,它是針對其他進程間通信方式運行效率低而專門設計的。它往往與其他通信機制,如信號兩,配合使用,來實現進程間的同步和通信。
信號量Semaphore:信號量是一個計數器,可以用來控制多個進程對共享資源的訪問。它常作為一種鎖機制,防止某進程正在訪問共享資源時,其他進程也訪問該資源。因此,主要作為進程間以及同一進程內不同線程之間的同步手段。
套接字Socket:套解口也是一種進程間通信機制,與其他通信機制不同的是,它可用于不同及其間的進程通信。
信號sinal: 信號是一種比較復雜的通信方式,用于通知接收進程某個事件已經發生。
感謝各位的閱讀,以上就是“Java基礎面試題是什么”的內容了,經過本文的學習后,相信大家對Java基礎面試題是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。