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

209 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>深入拆解Java虚拟机</h1>
<ul>
<li><a href = '\专栏\深入拆解Java虚拟机\00 开篇词 为什么我们要学习Java虚拟机.md.html'>00 开篇词 为什么我们要学习Java虚拟机</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\01 Java代码是怎么运行的.md.html'>01 Java代码是怎么运行的</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\02 Java的基本类型.md.html'>02 Java的基本类型</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\03 Java虚拟机是如何加载Java类的.md.html'>03 Java虚拟机是如何加载Java类的</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\04 JVM是如何执行方法调用的.md.html'>04 JVM是如何执行方法调用的</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\05 JVM是如何执行方法调用的.md.html'>05 JVM是如何执行方法调用的</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\06 JVM是如何处理异常的.md.html'>06 JVM是如何处理异常的</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\07 JVM是如何实现反射的.md.html'>07 JVM是如何实现反射的</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\08 JVM是怎么实现invokedynamic的.md.html'>08 JVM是怎么实现invokedynamic的</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\09 JVM是怎么实现invokedynamic的.md.html'>09 JVM是怎么实现invokedynamic的</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\10 Java对象的内存布局.md.html'>10 Java对象的内存布局</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\11 垃圾回收(上).md.html'>11 垃圾回收(上)</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\12 垃圾回收(下).md.html'>12 垃圾回收(下)</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\13 Java内存模型.md.html'>13 Java内存模型</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\14 Java虚拟机是怎么实现synchronized的.md.html'>14 Java虚拟机是怎么实现synchronized的</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\15 Java语法糖与Java编译器.md.html'>15 Java语法糖与Java编译器</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 Java字节码基础篇.md.html'>19 Java字节码基础篇</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 HotSpot虚拟机的intrinsic.md.html'>22 HotSpot虚拟机的intrinsic</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\23 逃逸分析.md.html'>23 逃逸分析</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\24 字段访问相关优化.md.html'>24 字段访问相关优化</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\25 循环优化.md.html'>25 循环优化</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\26 向量化.md.html'>26 向量化</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\27 注解处理器.md.html'>27 注解处理器</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\28 基准测试框架JMH.md.html'>28 基准测试框架JMH</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\29 基准测试框架JMH.md.html'>29 基准测试框架JMH</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\30 Java虚拟机的监控及诊断工具命令行篇.md.html'>30 Java虚拟机的监控及诊断工具命令行篇</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\31 Java虚拟机的监控及诊断工具GUI篇.md.html'>31 Java虚拟机的监控及诊断工具GUI篇</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\32 JNI的运行机制.md.html'>32 JNI的运行机制</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\33 Java Agent与字节码注入.md.html'>33 Java Agent与字节码注入</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\34 Graal用Java编译Java.md.html'>34 Graal用Java编译Java</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\35 Truffle语言实现框架.md.html'>35 Truffle语言实现框架</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\36 SubstrateVMAOT编译框架.md.html'>36 SubstrateVMAOT编译框架</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\尾声丨道阻且长,努力加餐.html.md.html'>尾声丨道阻且长,努力加餐.html</a></li>
<li><a href = '\专栏\深入拆解Java虚拟机\工具篇 常用工具介绍.md.html'>工具篇 常用工具介绍</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>