java進階

1/3ページ

深入理解java虛擬機器讀書筆記(一)

一、概述     1. java不僅是一門程式語言,還是一個由一系列計算機軟體和規範形成的計算機體系結構     2. 這個技術體系提供了完整的軟體開發和跨平臺部署的支援環境     3.廣泛應用於多種場合     優點:    1. 他擺脫了硬體平臺的束縛,實現了“一次編寫,到處執行”的理想    […]

深入理解java虛擬機器讀書筆記(二)

java和C 在記憶體動態分配和垃圾收集技術方面明顯的區別 一、概述     對於C、C 從事人員來說,在記憶體管理領域,他們既是擁有最高權利的皇帝,又是從事最基礎工作的勞動人民,即擁有每一個物件的所有權,有負責著每一個物件生命開始到終結的維護責任     對於java程式設計師來說,在虛擬機器自動 […]

深入理解java虛擬機器讀書筆記(三)

垃圾收集器和記憶體分配策略 3.2物件已死嗎?     判斷物件是否可以進行回收 3.2.1 引用計數演算法     給物件新增一個引用計數器,每當一個地方引用他時,計數器就加1,當引用失效時,計數器就減1,任何時刻引用計數器為0的物件就是不可能再被使用的。但是其沒有辦法解決物件之間迴圈引用的問題。 […]

實現一個可重入鎖

可重入鎖為當一個執行緒獲得該鎖後若未釋放前想要再次獲取該鎖,則可以直接獲取不用等待,我們只需要把鎖的次數加一即可,釋放一次鎖次數就減一,直到次數為零,其它執行緒就可以繼續競爭該鎖了。 package com.lock; import java.util.concurrent.TimeUnit; im […]

偏向鎖、輕量級鎖、重量級鎖

偏向鎖:只有一個執行緒進入臨界區 輕量級鎖:兩個執行緒交替進入臨界區 重量級鎖:兩個執行緒同時進入臨界區 三種鎖之間的相互轉換 偏向鎖、輕量級鎖是樂觀鎖,重量級鎖是悲觀鎖     當一個物件剛開始初始化時,沒有任何執行緒訪問他,他是可偏向的。所以當第一個執行緒來訪問他的時候,他會偏向第一個執行緒,物 […]