促銷
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題
課程
評論
關於我們
開始
開始學習
立即開始學習
My Progress
Courses
任務地圖
課程
Java Professional
等級 18
JVM 中的內存
Module 3 a ɛto so abien
等級 18,
課程 0
了解 JVM 中的內存 如您所知,JVM 在其內部運行 Java 程序。像任何虛擬機一樣,它有自己的內存組織系統。 內部存儲器佈局指示 Java 應用程序的工作方式。通過這種方式,可以識別應用程序和算法運行中的瓶頸。讓我們看看它是如何工作的。 重要的!原來的Java模型不夠好,所以在Java 1.5中進行了修改。這個版本一直沿用至今(Java 14+)。 線程棧 JVM內部使用的Java內存模型將內存分為線程棧和堆。我們來看一下Java內存模型,邏輯上分為塊: JVM 中運行
JVM 中的內存,第 2 部分
Module 3 a ɛto so abien
等級 18,
課程 1
內存硬件架構 現代內存硬件架構不同於 Java 的內部內存模型。因此,您需要了解硬件體系結構才能了解 Java 模型如何與它一起工作。本節介紹一般內存硬件架構,下一節介紹 Java 如何使用它。 這是現代計算機硬件架構的簡化圖: 在現代世界,一台計算機有 2 個或更多處理器,這已經是常態。其中一些處理器可能還具有多個內核。在這樣的計算機上,可以同時運行多個線程。每個處理器核心都能夠在任何給定時間執行一個線程。這意味著任何 Java 應用程序都是先驗多線程的,並且在您的程序中,
Java內存模型
Module 3 a ɛto so abien
等級 18,
課程 2
Java內存模型簡介 Java 內存模型 (JMM)描述了線程在 Java 運行時環境中的行為。內存模型是 Java 語言語義的一部分,它描述了程序員在開發不是針對特定 Java 機器而是針對整個 Java 的軟件時可以和不應該期望的內容。 1995 年開發的原始 Java 內存模型(特別是指“percolocal 內存”)被認為是失敗的:許多優化無法在不失去代碼安全保證的情況下進行。特別是,編寫多線程“單”有幾種選擇: 訪問單例的每個行為(即使對像是很久以前創建的,並且什麼
Java 中的垃圾收集
Module 3 a ɛto so abien
等級 18,
課程 3
回想一下 Java 中的垃圾回收是什麼 垃圾收集是通過銷毀未使用的對象來回收完整的運行時內存的過程。 有時程序員可能會忘記銷毀無用的對象,而分配給它們的內存並沒有被釋放。越來越多的系統內存被消耗,最終不再分配。此類應用程序遭受“內存洩漏”。 在某個點之後,不再有足夠的內存來創建新對象,並且程序由於OutOfMemoryError異常終止。 Java 中的垃圾收集是 Java 程序自動管理內存的過程。Java 程序被編譯成在 Java 虛擬機 (JVM) 上運行的字節碼。 當
世代垃圾收集
Module 3 a ɛto so abien
等級 18,
課程 4
處理多代對象 Java 垃圾收集器實現了分代垃圾收集策略,可以按年齡對對象進行分類。 JVM 中的這種需要(標記和壓縮所有對象)可以稱為低效。由於分配了大量對象,因此它們的列表會增長,從而導致垃圾收集時間增加。對應用程序的實證分析表明,Java 中的大多數對像都是短暫的。 JVM中的堆內存區分為三部分: 年輕一代 新創建的對像從年輕一代開始。年輕一代進一步細分為兩類。 Eden Space - 所有新對像都從這裡開始,它們被分配初始內存。 倖存者空間(FromSpace 和
Java中垃圾收集器的類型
Module 3 a ɛto so abien
等級 18,
課程 5
串行GC 垃圾收集通過從堆中刪除未引用的對象並為新創建的對象騰出空間來提高 Java 中的內存效率。 Java 虛擬機有八種類型的垃圾收集器。讓我們詳細考慮它們中的每一個。 Serial GC是最簡單的 GC 實現。它適用於在單線程環境中運行的小型應用程序。所有垃圾收集事件都在同一線程上按順序執行。壓縮在每次垃圾收集後執行。 運行收集器會導致“world stop”事件,此時整個應用程序都會暫停。由於整個應用程序在垃圾收集期間被凍結,如果您想盡可能降低延遲,您不應該在現實生活
選擇Java中的垃圾收集器
Module 3 a ɛto so abien
等級 18,
課程 6
7.1* 如何選擇合適的垃圾收集器 如果您的應用程序沒有嚴格的延遲要求,您應該只運行應用程序並讓 JVM 自己選擇正確的收集器。 在大多數情況下,默認設置工作正常。如有必要,您可以調整堆大小以提高性能。如果性能仍然不如預期,請嘗試修改收集器以滿足您的應用程序要求。 順序的。如果應用程序有一個小數據集(最多約 100 MB)和/或它將在沒有任何延遲要求的單個處理器上運行。 並行。如果優先級是應用程序的峰值性能並且沒有延遲要求(或者一秒或更長時間的暫停是可以接受的)。 內容管理系
Java 中的垃圾鏈接
Module 3 a ɛto so abien
等級 18,
課程 7
8.1 Java 中的弱引用 Java 中有多種引用。 有StrongReference - 這些是我們每天創建的最常見的鏈接。 Object object = new Object();//создал обьект
Please enable JavaScript to continue using this application.