首頁  >  文章  >  Java  >  javaweb面試題目(3)

javaweb面試題目(3)

(*-*)浩
(*-*)浩原創
2019-12-13 15:31:372178瀏覽

javaweb面試題目(3)

AJAX有哪些有優點和缺點?

優點:

1、最大的一點是頁面沒有刷新,使用者的體驗非常好。                  (建議學習:java面試題目

2、使用非同步方式與伺服器通信,並具備更快速的回應能力。

3、可以把以前一些伺服器負擔的工作轉嫁到客戶端,利用客戶端閒置的能力來處理,減輕伺服器和頻寬的負擔,節省空間和寬頻租用成本。並且減輕伺服器的負擔,ajax的原則是“按需取資料”,可以最大程度的減少冗餘請求,和回應對伺服器造成的負擔。

4、基於標準化的並被廣泛支援的技術,不需要下載外掛程式或小程式。

缺點:

1、ajax不支援瀏覽器back按鈕。

2、安全性問題 AJAX揭露了與伺服器互動的細節。

3、對搜尋引擎的支援比較弱。

4、破壞了程式的異常機制。

5、不容易調試。

AJAX應用程式和傳統Web應用程式有什麼不同?

在傳統的Javascript程式設計中,如果想得到伺服器端資料庫或檔案上的信息,或是傳送客戶端資訊到伺服器,需要建立一個HTML form然後GET或POST資料到伺服器端。

使用者需要點擊”Submit」按鈕來傳送或接受資料訊息,然後等待伺服器回應請求,頁面重新載入。

因為伺服器每次都會回傳一個新的頁面, 所以傳統的web應用程式有可能很慢而且使用者互動不友善。

使用AJAX技術, 就可以讓Javascript透過XMLHttpRequest物件直接與伺服器進行互動。

透過HTTP Request, 一個web頁面可以發送一個請求到web伺服器並且接受web伺服器返回的資訊(不用重新載入頁面),展示給使用者的還是同一個頁面,使用者感覺頁面刷新,也看不到到Javascript後台進行的發送請求和接受回應,體驗非常好。

Ajax的實作流程是怎麼樣的?

(1)建立XMLHttpRequest物件,也就是建立一個非同步呼叫物件.

(2)建立一個新的HTTP請求,並指定該HTTP請求的方法、URL及驗證訊息.

(3)設定回應HTTP請求狀態變化的函數.

(4)發送HTTP請求.

(5)取得非同步呼叫傳回的資料.

(6)使用JavaScript和DOM實作局部刷新.

具體一點:

1,建立XNLHttpRequest物件

(不考虑ie)XMLHttpRequest request = new XMLHttprequest();

2,建立新的Http請求

XMLHttprequest.open(method,url,flag,name,password);

3,設定回應Http請求變化的函數

XMLHttprequest.onreadystatechange=getData;
function getData(){
    if(XMLHttprequest.readyState==4){
        //获取数据
    }
}

4,發送http請求

XMLHttprequest.send(data);

5,取得非同步呼叫傳回的對象,

function(data){
//异步提交后,交互成功,返回的data便是异步调用返回的对象,该对象是一个string类型的
}

6,使用js、DOM實作局部刷新

myDiv.innerHTML=''這是刷新後的資料''

簡單說一下資料庫的三範式?

第一範式:資料庫表的每一個欄位都是不可分割的

第二範式:資料庫表中的非主屬性只依賴主鍵

#第三範式:不存在非主屬性對關鍵字的傳遞函數依賴關係

Java集合框架是什麼?說出一些集合框架的優點?

每種程式語言都有集合,最初的Java版本包含幾個集合類別:Vector、Stack、HashTable和Array。

隨著集合的廣泛使用,Java1.2提出了囊括所有集合介面、實作和演算法的集合框架。在確保線程安全的情況下使用泛型和並發集合類,Java已經經歷了很長時間。它還包括在Java並發包中,阻塞介面以及它們的實作。

集合架構的部分優點如下:

(1)使用核心集合類別降低開發成本,而非實作我們自己的集合類別。

(2)隨著使用經過嚴格測試的集合框架類,程式碼品質會提高。

(3)透過使用JDK附帶的集合類,可以降低程式碼維護成本。

(4)復用性和可操作性。

Java集合框架的基礎介面有哪些?

Collection為集合層級的根介面。一個集合代表一組對象,這些對象就是它的元素。 Java平台不提供這個介面任何直接的實作。

Set是一個不能包含重複元素的集合。這個介面對數學集合抽象進行建模,被用來代表集合,就如一副牌。

List是一個有序集合,可以包含重複元素。你可以透過它的索引來存取任何元素。 List更像長度動態變換的陣列。

Map是一個將key對應到value的物件.一個Map不能包含重複的key:每個key最多只能對應一個value。

一些其它的介面有Queue、Dequeue、SortedSet、SortedMap和ListIterator。

集合框架中的泛型有什麼優點?

Java1.5引進了泛型,所有的集合介面和實作都大量使用它。泛型允許我們為集合提供一個可以容納的物件類型。

因此,如果你添加其它類型的任何元素,它會在編譯時報錯。這避免了在運行時出現ClassCastException,因為你將會在編譯時得到報錯資訊。

泛型也讓程式碼整潔,我們不需要使用明確轉換和instanceOf運算元。它也為運行時帶來好處,因為不會產生類型檢查的字節碼指令。

Enumeration和Iterator介面的差別?

Enumeration的速度是Iterator的兩倍,也使用更少的記憶體。 Enumeration是非常基礎的,也滿足了基礎的需要。

但是,與Enumeration相比,Iterator更加安全,因為當一個集合正在被遍歷的時候,它會阻止其它線程去修改集合。

迭代器取代了Java集合框架中的Enumeration。迭代器允許呼叫者從集合中移除元素,而Enumeration不能做到。為了使它的功能更加清晰,迭代器方法名稱已經經過改善。

Iterater和ListIterator之間有什麼差別?

1,我們可以使用Iterator來遍歷Set和List集合,而ListIterator只能遍歷List。

2,Iterator只可以向前遍歷,而LIstIterator可以雙向遍歷。

3,ListIterator從Iterator介面繼承,然後增加了一些額外的功能,例如新增一個元素、取代一個元素、取得前面或後面元素的索引位置。

我們如何對一組物件進行排序?

如果我們需要對一個物件陣列進行排序,我們可以使用Arrays.sort()方法。如果我們需要排序一個物件列表,我們可以使用Collection.sort()方法。

兩個類別都有用於自然排序(使用Comparable)或基於標準的排序(使用Comparator)的重載方法sort()。

Collections內部使用陣列排序方法,所有它們兩者都有相同的效能,只是Collections需要花時間將清單轉換為陣列。

與Java集合架構相關的有哪些最好的實踐?

1,根據需要選擇正確的集合類型。例如,如果指定了大小,我們會選用Array而非ArrayList。如果我們想要依照插入順序遍歷一個Map,我們需要使用TreeMap。如果我們不想重複,我們應該使用Set。

2,有些集合類別允許指定初始容量,所以如果我們能夠估計到儲存元素的數量,我們可以使用它,就避免了重新哈希或大小調整。

3,基於介面編程,而非基於實作編程,它允許我們後來輕易地改變實作。

4,總是使用型別安全的泛型,避免在執行時出現ClassCastException。

5,使用JDK提供的不可變類別作為Map的key,可以避免自己實作hashCode()和equals()。

6,盡可能使用Collections工具類,或取得唯讀、同步或空的集合,而不是寫自己的實作。它將提供程式碼重用性,它有著更好的穩定性和可維護性。

什麼是事務?

交易是恢復和並發控制的基本單位

交易的四個基本特徵

原子性,一致性,隔離性,持久性

原子性和一致性差不多,意思是要嘛全部成功,要嘛就失敗

一致性是說,從一個一致性狀態到另一個一致性狀態

隔離性是說一個事務執行的過程中不能被另一個事務幹擾

持久性也就是事務一旦提交,他對資料庫中資料的改變就應該是永久的,不能變的(這裡只是面試簡單的說一下理解,詳細理解問度娘)

以上是javaweb面試題目(3)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn