Java每天5道面試題,跟我走,offer有!(八)

Java大蝸牛發表於2018-11-23

XML技術的作用?


XML技術用於資料儲存、

資訊配置、

資料交換三方面。

可以將資料儲存在XML中,

透過節點、

元素內容、

屬性標示資料內容及關係。

可以使用XML很方便的做資訊配置,

軟體的各種配置引數和物件關係

都存貯在XML檔案中。

在做資料交換平臺時,

將資料組裝成XML檔案,

然後將XML檔案壓縮打包加密後

透過網路傳送給接收者,

接收解密與解壓縮後再同XML檔案中

還原相關資訊進行處理。


XML文件約束有哪幾種?有什麼區別?


有兩種定義形式,

dtd文件型別定義和SchemaXML模式;

XML Schema 和DTD都用於文件驗證,

但二者還有一定的區別,

本質區別是:Scheme本身是xml的,

可以被XML解析器解析,

這也是從DTD上發展Schema的根本目的。

另外,

XML Schema 是內容開放模型,

可擴充套件,功能性強,

而DTD可擴充套件性差。

XML Schema 支援豐富的資料型別,

而 DTD不支援元素的資料型別,

對屬性的型別定義也很有限。

XML Schema 支援名稱空間機制,

而DTD不支援。

XML Schema 可針對不同情況

對整個XML 文件或文件區域性進行驗證;

而 DTD缺乏這種靈活性。

XML Schema 完全遵循XML規範,

符合XML語法,

可以和DOM結合使用,

功能強大;

而DTD 語法本身有自身的語法和要求,

難以學習。

 


XML的解析方式有哪幾種?有什麼區別?


1.DOM解析:

 DOM的全稱是Document Object Model,

也即文件物件模型。

在應用程式中,

基於DOM的XML分析器

將一個XML文件轉換成

一個物件模型的集合(通常稱DOM樹),

應用程式正是透過對

這個物件模型的操作,

來實現對XML文件資料的操作。

透過DOM介面,

應用程式可以在任何時候

訪問XML文件中的任何一部分資料,

因此,這種利用DOM介面的機制

也被稱作隨機訪問機制。

2.SAX解析:

SAX的全稱是Simple APIs for XML,

也即XML簡單應用程式介面。

與DOM不同,

SAX提供的訪問模式是一種順序模式,

這是一種快速讀寫XML資料的方式。

當使用SAX分析器對XML文件進行分析時,

會觸發一系列事件,

並啟用相應的事件處理函式,

應用程式透過這些事件處理函式

實現對XML文件的訪問,

因而SAX介面也被稱作事件驅動介面。

3.JDOM解析:

JDOM採用了Java中的Collection架構來封裝集合,

是Java愛好者更加熟悉的模式

4.DOM4J解析:

xml解析器一次性把整個xml文件載入進記憶體,

然後在記憶體中構建一顆Document的物件樹,

透過Document物件,

得到樹上的節點物件,

透過節點物件訪問(操作)到xml文件的內容


Http請求的Get和Post的區別?


1. get從位址列以明文的方式提交請求

資訊內容

?username=admin&password=123,

使用者可見, 

而post從請求正文提交請求資訊內容,

使用者不可見。

2. get提交因為是從位址列傳遞,

而瀏覽器的位址列長度有限制,

不能提交大資料

post從請求正文傳遞資訊內容,

對檔案大小無限制,

檔案上傳只能選擇post

3. request物件是伺服器獲取請求資訊

從請求頭,請求正文中獲取

我們可以使用request.setCharacterEncoding方法

修改請求物件字元編碼資訊,

但是不能修改位址列字元編碼。

get從位址列傳遞資訊,

不能使用request.setCharacterEncoding這個方法

去修改字元編碼。

post從請求正文以form表單形式提交,

所以可以使用request.setCharacterEncoding

這個方法去修改字元編碼。

4. 總結: 能夠使用post提交儘量使用post提交。


ServletConfig物件和ServletContext物件有什麼區別?


一個Servlet對應有一個ServletConfig物件,

可以用來讀取初始化引數。

一個webapp對應一個ServletContext物件。

ServletContext物件

獲取初始化定義的引數。

ServletContext物件可以透過

context.getResourceAsStream("/PATH");

或者context.getRealPath("/")。

去獲取webapp的資原始檔。

ServletContext物件的

setAttribute(String name,Object o)方法

可以將物件儲存在Context作用範圍域

又稱為全域性作用範圍域,

在整個web應用當中可以共享.

ServletContext物件

可以和伺服器進行通訊,

比如寫資訊到伺服器的日誌資訊當中。。


最後分享一些Java架構資料,面試資料及學習資源給大家:


主要包括(Java工程化、高效能及分散式、併發程式設計、深入淺出。效能調優、Spring,Mybatis,Netty,Redis,JVM, Zookeeper , ConcurrentHashMap1.8原始碼解讀,原始碼分析等影片及文件,也有詳細的Java進階路線腦圖)



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545684/viewspace-2221489/,如需轉載,請註明出處,否則將追究法律責任。

相關文章