1. 程式人生 > >Java——名詞解釋1

Java——名詞解釋1

1、什麼是回滾?

   答:比如:同時有事務A同時執行多個操作新增資料和更新資料,當新增成功之後,更新發生了錯誤,那麼就會把之前執行的新增的資料給刪除掉,就叫回滾。

2、什麼是髒資料?

    答:髒資料就是在臨時更新(讀髒)資料中產生的。比如:事務A更新了某個資料項X,但是由於某中原因,事務A出現了問題,於是要把A回滾。但是在回滾之前,另一個事務B讀取了資料項X的值(A更新後),A回滾了事務,資料項恢復了原值。事務B讀取的就是資料項X的就是一個“臨時”的值,就是髒資料。

3、什麼是不可重複度?

    答:事務A首先讀取了一條資料,然後執行邏輯的時候,事務B將這條資料改變了,然後事務A再次讀取的時候,發現數據比匹配了,就是所謂的不可重複讀。一般在update用到

4、什麼幻讀?

   答:事務A首先根據條件索引得到N條資料,然後事務B改變了這N條資料之外的M條或者增添M條符合事務A搜尋條件的資料,導致事務A再次搜尋發現有N+M條資料了,就產生了幻讀。一般在select中用到

5、什麼是工作流?

 答:比如用請假流程來舉例:員工使用賬戶登入系統——點選請假------專案經理登入系統點選同意——部門經理登入系統點選同意。這樣一個請假流程就結束了。關於專案經理怎麼把員工請假的資訊給部門經理,這個就是需要後臺自動執行。

6、什麼叫物件持久化?

  答:持久化的物件,是已經儲存到資料庫或儲存到本地硬碟中的物件。為了儲存在記憶體中的各種物件的狀態,並且可以把儲存的物件狀態在讀出來,雖然你可以用你自己的何種各樣的方法來儲存Object states,但是Java給你提供一種更好的儲存物件狀態的機制,那就是序列化。簡單來說,就是物件序列化是將物件狀態轉換為可保持或傳輸的格式的過程。

     什麼情況下需要序列化:

     a)當你想把記憶體中的物件狀態儲存到一個檔案中或者資料庫中的時候;

     b)當你想用套接字在網路上傳送物件的時候;

     c)當你想通過RMI傳輸物件的時候。

物件實現序列化,只需要實現Serialization介面。

7、什麼套接字?

      答:比如:兩個人使用電話通訊,你是主叫方,對方是被叫方。電話就是Socket。

              那麼你就需要一個Socket,對方就需要一個ServerSocket。在雙方連線成功時,都會產生一個socket例項,操作這個例項,完成所需的會話。

              對於一個網路連線來說,套接字是平等的,沒有差別,不會因為在伺服器端和客戶端產生不停級別。所以不管socket還是serverSocket他們的工作都是通過SocketImpl類及其子類完成的。

8、怎麼理解加權因子(擴容因子)?

    答:首先要了解List、Map、Set的載入因子,預設初始值。初始大小,就是建立時可容納的預設元素個數;載入因子,表示某個閥值/,用0-1之間的小數來表示,當已有元素佔比達到這個閥值後,底層將進行擴容操作;擴容方式,即指定每次擴容後的大小規則,比如翻倍等。

        當底層實現涉及到擴容時,容器或重新分配一段更大的連續記憶體,要將容器原來的資料全部複製到新的記憶體上,使效率大大降低了;

當載入因子的係數小於等於1時,及當元素個超過容量長度乘載入因子的係數時,進行擴容。

注:另外,擴容也有預設倍數的,不同的容器擴容情況不同。