1. 程式人生 > >作為Java程式設計師需要掌握哪些知識

作為Java程式設計師需要掌握哪些知識

知識點一: 1、 資料庫的鎖有哪幾種? 鎖的型別有三種: 1)共享(S)鎖:多個事務可封鎖一個共享頁;任何事務都不能修改該頁; 通常是該頁被讀取完畢,S鎖立即被釋放。 2)排它(X)鎖:僅允許一個事務封鎖此頁;其他任何事務必須等到X鎖被釋放才能對該頁進行訪問;X鎖一直到事務結束才能被釋放。 3)更新(U)鎖:用來預定要對此頁施加X鎖,它允許其他事務讀,但不允許再施加U鎖或X鎖;當被讀取的頁將要被更新時,則升級為X鎖;U鎖一直到事務結束時才能被釋放。 2、資料庫的事務隔離級別有幾種? 事務隔離級別有四種 1)讀未提交 2)不可重複讀 3)可重複讀 4)序列化 ———————————— 擴充——————————— 事物的基本要素 1、原子性:事務開始後所有操作,要麼全部做完,要麼全部不做,不可能停滯在中間環節。事務執行過程中出錯,會回滾到事務開始前的狀態,所有的操作就像沒有發生一樣。也就是說事務是一個不可分割的整體,就像化學中學過的原子,是物質構成的基本單位。 2、一致性:事務開始前和結束後,資料庫的完整性約束沒有被破壞 。比如A向B轉賬,不可能A扣了錢,B卻沒收到。 3、隔離性:同一時間,只允許一個事務請求同一資料,不同的事務之間彼此沒有任何干擾。比如A正在從一張銀行卡中取錢,在A取錢的過程結束前,B不能向這張卡轉賬。 4、永續性:事務完成後,事務對資料庫的所有更新將被儲存到資料庫,不能回滾。 ———————————————————————————————————————— 3、 悲歡鎖和樂觀鎖,分別用在什麼場景? 悲觀鎖(Pessimistic Lock): 每次獲取資料的時候,都會擔心資料被修改,所以每次獲取資料的時候都會進行加鎖,確保在自己使用的過程中資料不會被別人修改,使用完成後進行資料解鎖。由於資料進行加鎖,期間對該資料進行讀寫的其他執行緒都會進行等待。

樂觀鎖(Optimistic Lock): 每次獲取資料的時候,都不會擔心資料被修改,所以每次獲取資料的時候都不會進行加鎖,但是在更新資料的時候需要判斷該資料是否被別人修改過。如果資料被其他執行緒修改,則不進行資料更新,如果資料沒有被其他執行緒修改,則進行資料更新。由於資料沒有進行加鎖,期間該資料可以被其他執行緒進行讀寫操作。 適用場景:

悲觀鎖:比較適合寫入操作比較頻繁的場景,如果出現大量的讀取操作,每次讀取的時候都會進行加鎖,這樣會增加大量的鎖的開銷,降低了系統的吞吐量。

樂觀鎖:比較適合讀取操作比較頻繁的場景,如果出現大量的寫入操作,資料發生衝突的可能性就會增大,為了保證資料的一致性,應用層需要不斷的重新獲取資料,這樣會增加大量的查詢操作,降低了系統的吞吐量。

—————————————————————————————————————— 知識點二 1、cookie和session的區別 1)cookie資料存放在客戶端的瀏覽器上,session資料存放在伺服器上 2)cookie不是很安全 3)session會在一定時間內儲存在伺服器上。訪問增多時會比較佔用伺服器的效能 PS:小小建議 將登陸等重要資訊存放在session中 其他資訊如果需要保留可以放在cookie中 2、HTTPS和HTTP的區別是什麼? 1)https協議需要一定的費用 2)HTTP是超文字傳輸協議,資訊是明文傳輸,而HTTPS則具有安全性的加密傳輸 3)HTTP和HTTPS使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443 4)HTTP的連線很簡單,是無狀態的。HTTPS是由SSL和HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比HTTP安全

          ————————————————未完待續,下章見————————————————-
                                                                                                                     ps:如有雷同,請聯絡我