Java面試題詳解!不來了解一下嗎?

Java作為全世界最受青睞的編程語言,熱度一直是不曾下降呢。今天浙江優就業

為大家帶來了Java的面試問題。

Java面試題詳解!不來了解一下嗎?

1、什麼是Web Service(Web服務)?

答:從表面上看,Web Service就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用編程的方法透明的調用這個應用程序,不需要了解它的任何細節,跟你使用的編程語言也沒有關係。例如可以創建一個提供天氣預報的Web Service,那麼無論你用哪種編程語言開發的應用都可以通過調用它的API並傳入城市信息來獲得該城市的天氣預報。之所以稱之為Web Service,是因為它基於HTTP協議傳輸數據,這使得運行在不同機器上的不同應用無須藉助附加的、專門的第三方軟件或硬件,就可相互交換數據或集成。

補充:這裡必須要提及的一個概念是SOA(Service-Oriented Architecture,面向服務的架構),SOA是一種思想,它將應用程序的不同功能單元通過中立的契約聯繫起來,獨立於硬件平臺、操作系統和編程語言,使得各種形式的功能單元能夠更好的集成。顯然,Web Service是SOA的一種較好的解決方案,它更多的是一種標準,而不是一種具體的技術。

2、解釋一下網絡應用的模式及其特點。

答:典型的網絡應用模式大致有三類:B/S、C/S、P2P。其中B代表瀏覽器(Browser)、C代表客戶端(Client)、S代表服務器(Server),P2P是對等模式,不區分客戶端和服務器。B/S應用模式中可以視為特殊的C/S應用模式,只是將C/S應用模式中的特殊的客戶端換成了瀏覽器,因為幾乎所有的系統上都有瀏覽器,那麼只要打開瀏覽器就可以使用應用,沒有安裝、配置、升級客戶端所帶來的各種開銷。P2P應用模式中,成千上萬臺彼此連接的計算機都處於對等的地位,整個網絡一般來說不依賴專用的集中服務器。網絡中的每一臺計算機既能充當網絡服務的請求者,又對其它計算機的請求作出響應,提供資源和服務。通常這些資源和服務包括:信息的共享和交換、計算資源(如CPU的共享)、存儲共享(如緩存和磁盤空間的使用)等,這種應用模式最大的阻力是安全性、版本等問題,目前有很多應用都混合使用了多種應用模型,最常見的網絡視頻應用,它幾乎把三種模式都用上了。

3、Java規範中和Web Service相關的規範有哪些?

答:Java規範中和Web Service相關的有三個:

- JAX-WS(JSR 224):這個規範是早期的基於SOAP的Web Service規範JAX-RPC的替代版本,它並不提供向下兼容性,因為RPC樣式的WSDL以及相關的API已經在Java EE5中被移除了。WS-MetaData是JAX-WS的依賴規範,提供了基於註解配置Web Service和SOAP消息的相關API。

- JAXM(JSR 67):定義了發送和接收消息所需的API,相當於Web Service的服務器端。

- JAX-RS(JSR 311 & JSR 339 & JSR 370):是Java針對REST(Representation State Transfer)架構風格制定的一套Web Service規範。REST是一種軟件架構模式,是一種風格,它不像SOAP那樣本身承載著一種消息協議, (兩種風格的Web Service均採用了HTTP做傳輸協議,因為HTTP協議能穿越防火牆,Java的遠程方法調用(RMI)等是重量級協議,通常不能穿越防火牆),因此可以將REST視為基於HTTP協議的軟件架構。REST中最重要的兩個概念是資源定位和資源操作,而HTTP協議恰好完整的提供了這兩個點。HTTP協議中的URI可以完成資源定位,而GET、POST、OPTION、DELETE方法可以完成資源操作。因此REST完全依賴HTTP協議就可以完成Web Service,而不像SOAP協議那樣只利用了HTTP的傳輸特性,定位和操作都是由SOAP協議自身完成的,也正是由於SOAP消息的存在使得基於SOAP的Web Service顯得笨重而逐漸被淘汰。

4、概念解釋:SOAP、WSDL、UDDI。

答:

- SOAP:簡單對象訪問協議(Simple Object Access Protocol),是Web Service中交換數據的一種協議規範。

- WSDL:Web服務描述語言(Web Service Deion Language),它描述了Web服務的公共接口。這是一個基於XML的關於如何與Web服務通訊和使用的服務描述;也就是描述與目錄中列出的Web服務進行交互時需要綁定的協議和信息格式。通常採用抽象語言描述該服務支持的操作和信息,使用的時候再將實際的網絡協議和信息格式綁定給該服務。

- UDDI:統一描述、發現和集成(Universal Deion, Discovery and Integration),它是一個基於XML的跨平臺的描述規範,可以使世界範圍內的企業在互聯網上發佈自己所提供的服務。簡單的說,UDDI是訪問各種WSDL的一個門面(可以參考設計模式中的門面模式)。

提示:關於Web Service的相關概念和知識可以在W3CSchool上找到相關的資料。

5、如何設置請求的編碼以及響應內容的類型?

答:通過請求對象(ServletRequest)的setCharacterEncoding(String)方法可以設置請求的編碼,其實要徹底解決亂碼問題就應該讓頁面、服務器、請求和響應、Java程序都使用統一的編碼,最好的選擇當然是UTF-8;通過響應對象(ServletResponse)的setContentType(String)方法可以設置響應內容的類型,當然也可以通過HttpServletResponsed對象的setHeader(String, String)方法來設置。

小U老師相信,每天積累一點點,總有一日你會為今日的勤奮而欣喜。


分享到:


相關文章: