java初始化深度剖析
2024-08-24 07:39:21
当用一个类来创建对象的时候,JVM会帮我们执行下面的6个步骤。
1、在磁盘上找到对应内的class文件;
2、加载class文件到内存,初始化所有静态域(成员变量和方法);
3、如果使用new class()时,在堆上开辟一片空间;
4、将这片空间清零(对于基本类型来说,设置为0;对于引用类型来说,设置为null);
5、执行非静态域的成员变量的初始化(包括普通类型和应用类型);
6、执行构造函数。
这就是为什么类里面的静态成员和静态函数可以不用创建对象,直接用类来访问的原因,因为这些静态域已经在第2步,完成了加载和初始化,已经在内存中生效了,
并且只在内存中只有一份,也就是说无论这个类被用来创建了多少对象,这些静态域只被加载和初始化一次。
如果没有创建对象,那么只会执行上面的1和2两个步骤,3,4,5,6,要在创建对象的时候才会被执行。
最新文章
- Git Shell 基本命令(官网脱水版)
- scale配合过渡的时候bug
- 如何自定义wordpress登录界面的Logo
- lnmp 下安装yaf
- MySQL提供的错误日志中的错误级别一共有3个分别为:
- linux下用Apache一个IP多个网站多域名配置方法
- 如何解决在GDI画图中,多次修改画笔的颜色
- weekly review
- 开发者应该避免使用的6个Java功能(转)
- Android - 隐藏最顶端的通知条(Top Notification Bar)
- Nyoj 布线问题(并查集&;&;图论)
- crawler_基础之_httpclient 访问网络资源
- VS2010 使用 EF5 框架步骤
- Android Weekly Notes Issue #287
- VINS 估计器之检查视差
- 【一天一道LeetCode】#115. Distinct Subsequences
- ActiveX、OLE和COM的关系(转自百度文档)
- 移除文件(git rm)
- [.NET] 使用ValidationContext快速进行模型资料的验证
- Django 中文和时区设置