learn.lianglianglee.com/专栏/深入浅出 Java 虚拟机-完/index.html
2022-08-14 03:40:33 +08:00

197 lines
12 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>深入浅出 Java 虚拟机-完</h1>
<ul>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\00 开篇词JVM一块难啃的骨头.md.html'>00 开篇词JVM一块难啃的骨头</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\01 一探究竟:为什么需要 JVM它处在什么位置.md.html'>01 一探究竟:为什么需要 JVM它处在什么位置</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\02 大厂面试题:你不得不掌握的 JVM 内存管理.md.html'>02 大厂面试题:你不得不掌握的 JVM 内存管理</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\03 大厂面试题:从覆盖 JDK 的类开始掌握类的加载机制.md.html'>03 大厂面试题:从覆盖 JDK 的类开始掌握类的加载机制</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\04 动手实践:从栈帧看字节码是如何在 JVM 中进行流转的.md.html'>04 动手实践:从栈帧看字节码是如何在 JVM 中进行流转的</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\05 大厂面试题:得心应手应对 OOM 的疑难杂症.md.html'>05 大厂面试题:得心应手应对 OOM 的疑难杂症</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\06 深入剖析:垃圾回收你真的了解吗?(上).md.html'>06 深入剖析:垃圾回收你真的了解吗?(上)</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\07 深入剖析:垃圾回收你真的了解吗?(下).md.html'>07 深入剖析:垃圾回收你真的了解吗?(下)</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\08 大厂面试题:有了 G1 还需要其他垃圾回收器吗?.md.html'>08 大厂面试题:有了 G1 还需要其他垃圾回收器吗?</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\09 案例实战:亿级流量高并发下如何进行估算和调优.md.html'>09 案例实战:亿级流量高并发下如何进行估算和调优</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\10 第09讲案例实战面对突如其来的 GC 问题如何下手解决.md.html'>10 第09讲案例实战面对突如其来的 GC 问题如何下手解决</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\11 第10讲动手实践自己模拟 JVM 内存溢出场景.md.html'>11 第10讲动手实践自己模拟 JVM 内存溢出场景</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\12 第11讲动手实践遇到问题不要慌轻松搞定内存泄漏.md.html'>12 第11讲动手实践遇到问题不要慌轻松搞定内存泄漏</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\13 工具进阶:如何利用 MAT 找到问题发生的根本原因.md.html'>13 工具进阶:如何利用 MAT 找到问题发生的根本原因</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\14 动手实践:让面试官刮目相看的堆外内存排查.md.html'>14 动手实践:让面试官刮目相看的堆外内存排查</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\15 预警与解决:深入浅出 GC 监控与调优.md.html'>15 预警与解决:深入浅出 GC 监控与调优</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\16 案例分析:一个高死亡率的报表系统的优化之路.md.html'>16 案例分析:一个高死亡率的报表系统的优化之路</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\17 案例分析:分库分表后,我的应用崩溃了.md.html'>17 案例分析:分库分表后,我的应用崩溃了</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\18 动手实践:从字节码看方法调用的底层实现.md.html'>18 动手实践:从字节码看方法调用的底层实现</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\19 大厂面试题:不要搞混 JMM 与 JVM.md.html'>19 大厂面试题:不要搞混 JMM 与 JVM</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\20 动手实践:从字节码看并发编程的底层实现.md.html'>20 动手实践:从字节码看并发编程的底层实现</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\21 动手实践:不为人熟知的字节码指令.md.html'>21 动手实践:不为人熟知的字节码指令</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\22 深入剖析:如何使用 Java Agent 技术对字节码进行修改.md.html'>22 深入剖析:如何使用 Java Agent 技术对字节码进行修改</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\23 动手实践JIT 参数配置如何影响程序运行?.md.html'>23 动手实践JIT 参数配置如何影响程序运行?</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\24 案例分析:大型项目如何进行性能瓶颈调优?.md.html'>24 案例分析:大型项目如何进行性能瓶颈调优?</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\25 未来JVM 的历史与展望.md.html'>25 未来JVM 的历史与展望</a></li>
<li><a href = '\专栏\深入浅出 Java 虚拟机-完\26 福利:常见 JVM 面试题补充.md.html'>26 福利:常见 JVM 面试题补充</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>