原创 一 基礎原理:第04講:動手實踐:從棧幀看字節碼是如何在 JVM 中進行流轉的

在上一課時我們掌握了 JVM 的內存區域劃分,以及 .class 文件的加載機制。也瞭解到很多初始化動作是在不同的階段發生的。 但你可能仍對以下這些問題有疑問: 怎麼查看字節碼文件? 字節碼文件長什麼樣子? 對象初始化之後,具體的字節碼又

原创 二 垃圾回收:第06講:深入剖析:垃圾回收你真的瞭解嗎?(下)

由於上一課時篇幅比較多,我們在這一課時重點講解上一課時中提到的 CMS 垃圾回收器,讓你可以更好的理解垃圾回收的過程。 在這裏首先給你介紹幾個概念: Minor GC:發生在年輕代的 GC。 Major GC:發生在老年代的 GC。 Fu

原创 一 基礎原理:第01講:一探究竟:爲什麼需要 JVM?它處在什麼位置?

從本課時開始我們就正式進入 JVM 的學習,如果你是一名軟件開發工程師,在日常工作中除了 Java 這個關鍵詞外,還有一個名詞也一定經常被提及,那就是 JVM。提到 JVM 我們經常會在面試中遇到這樣的問題: 爲什麼 Java 研發系統需

原创 二 垃圾回收:第08講:案例實戰:億級流量高併發下如何進行估算和調優

本課時主要講解如何在大流量高併發場景下進行估算和調優。 我們知道,垃圾回收器一般使用默認參數,就可以比較好的運行。但如果用錯了某些參數,那麼後果可能會比較嚴重,我不只一次看到有同學想要驗證某個剛剛學到的優化參數,結果引起了線上 GC 的嚴

原创 二 垃圾回收:第06講:深入剖析:垃圾回收你真的瞭解嗎?(上)

本課時我們重點剖析 JVM 的垃圾回收機制。關於 JVM 垃圾回收機制面試中主要涉及這三個考題: JVM 中有哪些垃圾回收算法?它們各自有什麼優劣? CMS 垃圾回收器是怎麼工作的?有哪些階段? 服務卡頓的元兇到底是誰? 雖然 Java

原创 二 垃圾回收:第07講:大廠面試題:有了 G1 還需要其他垃圾回收器嗎?

本課時我們主要來看下這兩個高頻的面試考題: G1 的回收原理是什麼?爲什麼 G1 比傳統 GC 回收性能好? 爲什麼 G1 如此完美仍然會有 ZGC? 我們在上一課時,簡要的介紹了 CMS 垃圾回收器,下面我們簡單回憶一下它的一個極端場景

原创 二 垃圾回收:第05講:大廠面試題:得心應手應對 OOM 的疑難雜症

在前面幾個課時中,我們不止一次提到了堆(heap),堆是一個巨大的對象池。在這個對象池中管理着數量巨大的對象實例。 而池中對象的引用層次,有的是很深的。一個被頻繁調用的接口,每秒生成對象的速度,也是非常可觀的。對象之間的關係,形成了一張巨

原创 三 實戰:第09講:案例實戰:面對突如其來的 GC 問題如何下手解決

本課時我們主要從一個實戰案例入手分析面對突如其來的 GC 問題該如何下手解決。 想要下手解決 GC 問題,我們首先需要掌握下面這三種問題。 如何使用 jstat 命令查看 JVM 的 GC 情況? 面對海量 GC 日誌參數,如何快速抓住問

原创 一 基礎原理:第02講:大廠面試題:你不得不掌握的 JVM 內存管理

本課時我們主要講解 JVM 的內存劃分以及棧上的執行過程。這塊內容在面試中主要涉及以下這 3 個面試題: JVM 是如何進行內存區域劃分的? JVM 如何高效進行內存管理? 爲什麼需要有元空間,它又涉及什麼問題? 帶着這 3 個問題,我們

原创 一 基礎原理:第03講:大廠面試題:從覆蓋 JDK 的類開始掌握類的加載機制

本課時我們主要從覆蓋 JDK 的類開始講解 JVM 的類加載機制。其實,JVM 的類加載機制和 Java 的類加載機制類似,但 JVM 的類加載過程稍有些複雜。 前面課時我們講到,JVM 通過加載 .class 文件,能夠將其中的字節碼解

原创 深入淺出 Java 虛擬機——專題

課程目錄 開篇詞 開篇詞:JVM,一塊難啃的骨頭 基礎原理 第01講:一探究竟:爲什麼需要 JVM?它處在什麼位置? 第02講:大廠面試題:你不得不掌握的 JVM 內存管理 第03講:大廠面試題:從覆蓋 JDK 的類開始掌握類的加載機制

原创 Java數組及數組工具類Arrays的使用

package com.example.demo; import org.junit.Test; import java.util.Arrays; /** * @Description 數組工具類Arrays的使用 * @Au

原创 MySQL8.016安裝和配置——Windows

一、安裝環境 OS:Windows 10 MySQL:mysql 8.0.16二、安裝過程 (一)下載 根據自己電腦配置,從官方網站下載MySQL安裝文件。 選擇操作系統類型,然後點擊Download。 進入下載頁面,不用管其他的,直接

原创 Java數組和數據工具類Arrays的使用

package com.example.demo; import org.junit.Test; import java.util.Arrays; /** * @Description 數組工具類Arrays的使用 * @Au

原创 Java中的位運算左移右移詳細分析

Java中的 << 和 >> 和 >>> 詳細分析 1、快速瞭解 正數:r = 20 << 1   20的二進制補碼:0001 0100   向左移動兩位後:0101 0000          結果:r = 40 正數:r = 20 >