类的初始化时机
来源:互联网 发布:java 日期带毫秒 编辑:程序博客网 时间:2024/06/05 04:44
Java虚拟机严格规定了有且只有四种情况必须对类进行"初始化"(而加载、验证、准备自然需要在此之前开始):
1.遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。
生成这4种指令的最常见的Java代码场景是:
使用new关键字实例化对象的时候、读取或设置一个类的静态字段(被final修饰、已在编译期把结果放入常量池的静态字段除外)
的时候,以及调用一个类的静态方法的时候。
对于静态字段,只有直接定义这个字段的类才会初始化。
2.使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有时行过初始化,则需要先触发初始化
3.当初始化一个类的时候,如果发现其父类没有进行过初始化,则需要先触发父类的初始化。
4.当虚拟机启动时,用户需要指定一个要执行的主类(包含main()方法的那个类),虚拟机会先初始化这个主类。
- 类的初始化时机
- 类的初始化时机
- 类初始化的时机
- 类初始化的时机
- 类的初始化的时机
- java类的初始化时机
- 类变量的初始化时机
- java 类初始化的时机
- 类变量的初始化时机
- Java类变量的初始化时机
- 类初始化时机
- 类初始化时机
- 类变量初始化时机
- 实例变量的初始化时机
- 实例变量的初始化时机
- 实例变量的初始化时机
- 静态变量初始化的时机
- java类的加载 初始化时机,已经静态代码块的执行时机
- 为什么中国的程序员技术偏低
- uva 299 Train Swapping
- 第四周第一天java网络编程
- XXOO
- 计算机十二种常用密码破解法
- 类的初始化时机
- 对RootEditPart的理解
- opencsv 的乱码解决方案
- GEF中如何实现Direct Edit
- VS 2005 打开 VC 6.0 工程,编译出现 cannot open file libc.lib
- Android工具之被忽略的UI检视利器:Hierarchy Viewer
- 类模板与模板类
- JAVA注解
- Linux下LAMP(Apache PHP MySql)环境配置