JVM基础

JVM组成部分

字节码

字节码文件的查看工具:https://github.com/ingokegel/jclasslib

一般信息

JDK与字节码版本不兼容报错异常如下:

常量池

方法

面试常见问题

i++时,i的值为0;而++1时,i的值为1

java 复制代码
public class A {
    public static void main(String[] args) {
        int i = 0, j = 0, k = 0;
        i++;
        j = j + 1;
        k += 1;
    }
}

查看字节码的工具

javap(适用于程序部署后)
jclasslib插件(适用于本地调试)
arthas(适用于程序处于运行中使用)

下载 | arthas (aliyun.com)https://arthas.aliyun.com/doc/download.html

arthas的安装

安装请按照官方文档执行

快速入门 | arthas (aliyun.com)https://arthas.aliyun.com/doc/quick-start.html#_1-%E5%90%AF%E5%8A%A8-math-game

查看 dashboard

dashboard | arthas (aliyun.com)https://arthas.aliyun.com/doc/dashboard.html

dump查看字节码
jad查看原代码

类的生命周期

类加载

类加载器将类的信息加载到内存中,jvm在方法区和堆区各分配一个对象,用于保存类的信息

连接

验证

准备

解析

初始化

初始化的内容

触发类初始化的时机

不会触发初始化的情况

类加载器

类加载器的分类

使用arthas查看程序中类加载器的情况

启动类加载器

拓展类加载器与应用程序加载器

双亲委派机制

面试:类的双亲委派机制是什么?

相关推荐
用户84913717547167 小时前
生产级故障排查实战:从制造 OOM 到 IDEA Profiler 深度破案
java·jvm
爱学java的ptt8 小时前
jvm笔记
jvm·笔记
DKPT1 天前
ZGC和G1收集器相比哪个更好?
java·jvm·笔记·学习·spring
低客的黑调1 天前
为你的项目选择一个适合的[垃圾收集器]
java·jvm·算法
xu_yule1 天前
Linux_14(多线程)线程控制+C++多线程
java·开发语言·jvm
豆奶特浓61 天前
Java面试生死局:谢飞机遭遇在线教育场景,从JVM、Spring Security到AI Agent,他能飞吗?
java·jvm·微服务·ai·面试·spring security·分布式事务
Boop_wu1 天前
[Java EE] 多线程进阶(JUC)(2)
java·jvm·算法
3***31211 天前
java进阶1——JVM
java·开发语言·jvm
打工人你好3 天前
如何设计更安全的 VIP 权限体系
java·jvm·安全
unclecss3 天前
把 Spring Boot 的启动时间从 3 秒打到 30 毫秒,内存砍掉 80%,让 Java 在 Serverless 时代横着走
java·jvm·spring boot·serverless·graalvm