jvm学习总结

news/2025/1/22 5:22:02/

1.类加载运行全过程

    当我们使用java命令运行某个main函数启动程序时,首先需要通过类加载器把主类加载到JVM.

主要用到的类为loadClass,loadClass的类加载过程有如下过程

加载--》验证--》准备-》》解析》》初始化》》使用》》卸载

加载:

  在硬盘上查找并通过io读写字节码文件,使用类时才加载,例如调用来的main方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。

验证:验证字节码的准备性

准备:给累的静态变量分配内存

解析:符号引用替换为直接引用,该阶段会把一些静态方法换为指向数据所存内存的指针或句柄等

初始化:对类的静态变量初始化为指定的值,执行静态代码块


http://www.ppmy.cn/news/1565143.html

相关文章

jvm G1 垃圾收集日志分析示例(GC)

一、gc 日志 2023-11-07 12:40:53 GC log file created /opt/logs/query/gc.log.1 Java HotSpot(TM) 64-Bit Server VM (25.45-b02) for linux-amd64 JRE (1.8.0_45-b14), built on Apr 10 2015 10:07:45 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8) M…

UML-组件图

UML(统一建模语言)的组件图,又称为构件图,是描述软件系统中物理方面的图形,它主要用于展示系统内部各个组件之间的组织及其相互关系。通过组件图,开发者可以清晰地了解系统的结构,把握组件间的依…

2025美赛Latex模板可直接运行!O奖自用版

目录 01 预览图02 Latex模板main.texeasymcm.sty 2025年美国大学生数学建模大赛(2025年1月23日)马上开始啦,大家一定要提前准备好模板,Latex或者是Word都可以,这里我整理了之前比赛用到的模板,并进行了一些…

jeecg后端登录接口

jeecg后端登录接口 /sys/loginLoginController.java

迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-编写内核 LED HDF 驱动程序

接下来编译 LED 驱动,该驱动用于在基于华为设备框架(HDF)的系统中控制 LED 灯的开关,完整代码如下所示: 更多内容可以关注:迅为RK3568开发板篇OpenHarmony

【计算机网络】传输层协议TCP与UDP

传输层 传输层位于OSI七层网络模型的第四层,主要负责端到端通信,可靠性保障(TCP),流量控制(TCP),拥塞控制(TCP),数据分段与分组,多路复用与解复用等,通过TCP与UDP协议实现…

图解Git——服务器上的Git《Pro Git》

协议 1. Git 远程仓库及通信协议概述 1.1. 远程仓库的重要性 作用:提供协作平台,支持团队共享代码,即使主机离线,其他人仍可访问。常见形式:裸仓库(不含工作目录,仅保存 Git 元数据&#xff…

SSH config

背景 起因就是我发现大部分人对 SSH 只会基本的 ssh userip 的方式登录服务器,至多再会个配置免密,而对 SSH config 几乎不了解。事实上 SSH 可以灵活批量配置服务器信息,配置跳板等等。本文努力普及一些使用细节,希望有一天大家都…