关于JVM加载class文件和类的初始化
2024-10-09 03:39:58
关于JVM加载class文件和类的初始化
1.JVM加载Class文件的原理机制
1.1.装载
查找并加载类的二进制数据
1.2.链接
验证:确保被加载类的正确性。(安全性考虑)
准备:为类的静态变量分配内存,并将其初始化为默认值。(比如static int a = 10 这里给a的默认初始值为0)
解析:把类中的符号引用转换为直接引用。
1.3.初始化
为类的静态变量赋予正确的初始值。(这个时候a的值才为10)
2.类在什么时候被初始化
1)创建类的实例,也就是new一个对象。
2)访问某一个类的或者接口的静态变量,或者对该静态变量赋值
3)调用类的及静态方法
4)反射Class.forName("xxx.xxx.xxx")()
5)初始化一个类的子类(会首先初始化子类的父类)
最新文章
- C++-不要在构造和析构函数中调用虚函数
- 蒋金楠How ASP.NET MVC Works?[持续更新中…]
- 《APUE》第6章笔记
- eval、json.parse()的介绍和使用注意点
- C#模板打印excel
- 关于Mongdb的java的CRUD操作
- scrapy_Response and Request
- java排序算法(九):归并排序
- UNICODE与ASCII
- python 识别图片上的数字
- selenium java maven testNg环境搭建
- filter帅选
- 关于${pageContext.request.contextPath}的理解 (转载)
- [luogu4551][POJ3764]最长异或路径
- CCPC-Wannafly Winter Camp Day4 Div1 - 置置置换 - [DP]
- c#: List.Sort()实现稳固排序(stable sort)
- python处理json格式的数据
- 安卓获取ListView、GridView等滚动的距离(高度)
- 【剑指offer】输入一个链表,输出该链表中倒数第k个结点。
- BZOJ 1003--[ZJOI2006]物流运输(最短路)
热门文章
- git开发常用命令
- activemq读取剩余消息队列中消息的数量
- windows server 2016 x64用MecaCli工具检查raid5磁盘状态
- 我的Windows日常——Win7完美兼容tsmmc.msc的方法
- Java基础系列--04_数组
- Nginx作为HTTP服务器--Nginx配置图片服务器
- Java Web Token - JWT
- linux ps aux 各列内容说明
- xml错误之cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:annotation-driven'.
- mysql数据库中插入数据INSERT INTO SET的优势