判斷客戶端的請求中是否有乙個名字叫做"jsessionid"的cookie,如果沒有;就會新建立乙個session物件,並且將這個session物件的 id 以cookie的形式存放到客戶端,該cookie的 name 叫"jsessionid"
如果有:則取出cookie中的session的 id,到伺服器記憶體中,查詢 id 相同的session物件
首先,session是 存在於我們服務端的,那麼如果瀏覽器關閉,session會不會失效?
答案是:會失效 ! ! ! 為什麼瀏覽器關閉session會失效?是因為session物件銷毀了嗎?session物件沒銷毀,因為存放 id 的cookie銷毀了,所以就無法找到原來的那個session了。就拿不到原來那個session中的資料了
當我們反覆關閉瀏覽器,那就會在伺服器記憶體中建立很多個session物件,這樣會不會造成記憶體溢位呢?
答案是:不會,因為session有它自己的宣告週期,閒置 30 分鐘之後,就會銷毀。
什麼時候會銷毀session物件呢:
1、閒置 30 分鐘
2、關閉伺服器
3、手動呼叫session的invalidate()方法
Switch底層執行原理
s witch語句根據乙個整數索引值進行多重分支,底層採用跳轉表這種資料結構。跳轉表是乙個陣列,表項i對應 段的位址,當switch索引值等於表項i時採取對應的程式操作。簡單可理解為 執行 switch時生成乙個長度為最大case常量 1的陣列,程式首先判斷switch變數是否大於最大case 常量...
SparkSQL底層執行的原理詳解 面試必備
檢視執行計畫 explain 簡介 spark sql的核心是catalyst優化器,它以一種新穎的方式利用高階程式語言功能 例如scala的模式匹配和quasiquotes 來構建可擴充套件的查詢優化器 sparksql的catalyst優化器是整個sparksql pipeline的中間核心部分...
Voliate的底層原理
jvm 底層是通過乙個叫做 記憶體屏障 的東西來完成。記憶體屏障,也叫做記憶體柵欄,是一組處理器指令,用於實現對記憶體操作的順序限制。所以能禁止指令重排序,即volatile能在一定程度上保證有序性。一定程度理解如下 語句1和語句2的順序不保證 語句4和語句5的順序不保證 但是無論怎麼重排,語句3前...