learn.lianglianglee.com/专栏/JVM 核心技术 32 讲(完)/index.html
2022-08-14 03:40:33 +08:00

202 lines
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>note-submit</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/PDF">PDF</a>
</li>
<li>
<a href="/专栏">专栏</a>
</li>
<li>
<a href="/恋爱必修课">恋爱必修课</a>
</li>
<li>
<a href="/文章">文章</a>
</li>
<li>
<a href="/极客时间">极客时间</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content"
style="max-width: 960px; margin: 0 auto; overflow-x: auto; overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><!--add content-->
<h1>JVM 核心技术 32 讲(完)</h1>
<ul>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\01 阅读此专栏的正确姿势.md.html'>01 阅读此专栏的正确姿势</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\02 环境准备:千里之行,始于足下.md.html'>02 环境准备:千里之行,始于足下</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\03 常用性能指标:没有量化,就没有改进.md.html'>03 常用性能指标:没有量化,就没有改进</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\04 JVM 基础知识:不积跬步,无以至千里.md.html'>04 JVM 基础知识:不积跬步,无以至千里</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\05 Java 字节码技术:不积细流,无以成江河.md.html'>05 Java 字节码技术:不积细流,无以成江河</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\06 Java 类加载器:山不辞土,故能成其高.md.html'>06 Java 类加载器:山不辞土,故能成其高</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\07 Java 内存模型:海不辞水,故能成其深.md.html'>07 Java 内存模型:海不辞水,故能成其深</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\08 JVM 启动参数详解:博观而约取、厚积而薄发.md.html'>08 JVM 启动参数详解:博观而约取、厚积而薄发</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\09 JDK 内置命令行工具:工欲善其事,必先利其器.md.html'>09 JDK 内置命令行工具:工欲善其事,必先利其器</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\10 JDK 内置图形界面工具:海阔凭鱼跃,天高任鸟飞.md.html'>10 JDK 内置图形界面工具:海阔凭鱼跃,天高任鸟飞</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\11 JDWP 简介:十步杀一人,千里不留行.md.html'>11 JDWP 简介:十步杀一人,千里不留行</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\12 JMX 与相关工具:山高月小,水落石出.md.html'>12 JMX 与相关工具:山高月小,水落石出</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\13 常见的 GC 算法GC 的背景与原理).md.html'>13 常见的 GC 算法GC 的背景与原理)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\14 常见的 GC 算法ParallelCMSG1.md.html'>14 常见的 GC 算法ParallelCMSG1</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\15 Java11 ZGC 和 Java12 Shenandoah 介绍:苟日新、日日新、又日新.md.html'>15 Java11 ZGC 和 Java12 Shenandoah 介绍:苟日新、日日新、又日新</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\16 Oracle GraalVM 介绍:会当凌绝顶、一览众山小.md.html'>16 Oracle GraalVM 介绍:会当凌绝顶、一览众山小</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\17 GC 日志解读与分析(基础配置).md.html'>17 GC 日志解读与分析(基础配置)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\18 GC 日志解读与分析(实例分析上篇).md.html'>18 GC 日志解读与分析(实例分析上篇)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\19 GC 日志解读与分析(实例分析中篇).md.html'>19 GC 日志解读与分析(实例分析中篇)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\20 GC 日志解读与分析(实例分析下篇).md.html'>20 GC 日志解读与分析(实例分析下篇)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\21 GC 日志解读与分析(番外篇可视化工具).md.html'>21 GC 日志解读与分析(番外篇可视化工具)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\22 JVM 的线程堆栈等数据分析:操千曲而后晓声、观千剑而后识器.md.html'>22 JVM 的线程堆栈等数据分析:操千曲而后晓声、观千剑而后识器</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\23 内存分析与相关工具上篇(内存布局与分析工具).md.html'>23 内存分析与相关工具上篇(内存布局与分析工具)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\24 内存分析与相关工具下篇(常见问题分析).md.html'>24 内存分析与相关工具下篇(常见问题分析)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\25 FastThread 相关的工具介绍:欲穷千里目,更上一层楼.md.html'>25 FastThread 相关的工具介绍:欲穷千里目,更上一层楼</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\26 面临复杂问题时的几个高级工具:它山之石,可以攻玉.md.html'>26 面临复杂问题时的几个高级工具:它山之石,可以攻玉</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\27 JVM 问题排查分析上篇(调优经验).md.html'>27 JVM 问题排查分析上篇(调优经验)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\28 JVM 问题排查分析下篇(案例实战).md.html'>28 JVM 问题排查分析下篇(案例实战)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\29 GC 疑难情况问题排查与分析(上篇).md.html'>29 GC 疑难情况问题排查与分析(上篇)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\30 GC 疑难情况问题排查与分析(下篇).md.html'>30 GC 疑难情况问题排查与分析(下篇)</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\31 JVM 相关的常见面试问题汇总:运筹策帷帐之中,决胜于千里之外.md.html'>31 JVM 相关的常见面试问题汇总:运筹策帷帐之中,决胜于千里之外</a></li>
<li><a href = '\专栏\JVM 核心技术 32 讲(完)\32 应对容器时代面临的挑战:长风破浪会有时、直挂云帆济沧海.md.html'>32 应对容器时代面临的挑战:长风破浪会有时、直挂云帆济沧海</a></li>
</ul>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194"
integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw=="
data-cf-beacon='{"rayId":"70996b2f083d3d60","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}'
crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>