java----类得加载过程
来源:互联网 发布:网络水军兼职 编辑:程序博客网 时间:2024/06/15 21:32
类得加载过程分为:加载—>验证—> 准备—> 解析—> 初始化—>使用—>卸载过程,这里只讲前五步。
以Person p=new Person()为例说明
1、jdk将.java文件编译成.class文件,jvm将.class文件加载到内存中(方法区内存)
2、类变量默认初始化,0操作,比如 static int a=1;则a=0;注意 如果是 static final int a =1;那么 a=1;因为 final修饰的变量 默认初始化就会指定变量的值。放入常量池 (此时都在方法区内执行)
3、初始化操作,在堆内存中开辟空间,执行类构造器()方法的过程,对静态变量显示赋值操作,顺序由代码的顺序决定
4、对象变量(非静态变量,非静态代码块)的显示赋值操作。
5、初始化构造函数,构造函数在进入栈中执行,在堆中生成person对象。构造方法弹出栈。
6、在堆中将对象的物理内存地址赋值给变量p。
7、p通过地址找对对象实体,与之关联。
阅读全文
0 0
- java----类得加载过程
- java类加载过程
- java类加载过程
- Java类加载过程
- java类加载过程
- Java类加载过程
- java 类加载过程
- java类加载过程
- java类加载过程
- Java类加载过程
- Java类加载过程
- Java类加载过程
- java类加载过程
- java 类加载过程
- Java类加载过程
- java类加载过程
- Java类加载过程
- java类加载过程
- javascript闭环机制的详解
- [转]asp.net中session的原理及应用
- FST树
- ScrollView(滚动条)
- springMvc常用注解-@ModelAttribute
- java----类得加载过程
- 如何输出python中list的维度
- 玩转Eclipse
- NSPredicate 模糊查询
- UIswitch
- 精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解
- 性能怪兽!一个7倍于GoogleNet/AlexNet GPU的加速卡诞生了!
- fragment
- spring3笔记3-DI注入