![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 58
林小果呀
发文全看心情,要详细笔记可私我
展开
-
类加载器
扩展类加载器和应用程序类加载器都是JDK中提供的、使用Java编写的类加载器。在类加载的过程中,每个类加载器都会先检查是否已经加载了该类,如果已经加载则直接返回,否则会将加载请求委派给父类加载器。应用程序类加载器的parent父类加载器是扩展类加载器,而扩展类加载器的parent是空。( 并不是继承关系)如果所有的父类加载器都无法加载该类,则由当前类加载器自己尝试加载。扩展类加载器默认加载Java安装目录/jre/lib/ext下的类文件。应用程序类加载器是扩展类加载器的子类,是Java代码实现的。原创 2024-09-11 09:50:45 · 344 阅读 · 0 评论 -
运行时数据区
Java服务端程序开发时,建议将-Xmx和-Xms设置为相同的值,这样在程序启动之后可使用的总内存就是最大内存,而无需向java虚拟机再次申请,减少了申请并分配内存时间上的开销,同时也不会出现内存过剩之后堆收缩的情况。方法出口指的是方法在正确或者异常结束时,当前栈帧会被弹出,同时程序计数器应该指向上一个栈帧中的下一条指令的地址。used指的是当前已使用的堆内存,total是java虚拟机已经分配的可用堆内存,max是java虚拟机可以分配的最大堆内存。栈上的局部变量表中,可以存放堆上对象的引用。原创 2024-09-11 09:48:50 · 740 阅读 · 0 评论 -
类的生命周期
连接(Linking)阶段的第一个环节是验证,验证的主要目的是检测Java字节码文件是否遵守了《Java虚拟机规 范》中的约束。解析阶段是连接阶段的第三步,它是将类、接口、字段和方法的符号引用(字节码文件中使用编号来访问常量池中的内容)转换为直接引用(内存地址)的过程。准备阶段是连接阶段的第二步,它为类变量分配内存,并设置默认初始值。这些变量所使用的内存都在方法区中进行分配。生命周期:加载 -> 连接 -> 初始化 -> 使用 -> 卸载。参数可以打印出加载并初始化的类。参数打印出加载并初始化的类。原创 2024-09-10 09:43:03 · 322 阅读 · 0 评论 -
字节码文件打开方式
该工具可以直观的查看.class字节码文件下载地址:https://github.com/ingokegel/jclasslib也可直接在idea中安装。原创 2024-09-10 09:42:17 · 187 阅读 · 0 评论 -
JVM简介
JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。原创 2024-09-10 09:41:03 · 316 阅读 · 0 评论