java中类初始化时机
来源:互联网 发布:java rmi原理 编辑:程序博客网 时间:2024/06/05 03:18
很多人会迷惑,Java中类什么时候初始化:
1.创建类的实例。当然这就包括三种方式:(1):通过new来创建(2):通过反射来创建(3):通过反序列化来创建
2.调用该类的静态方法
3.调用该类的静态属性,这里需要注意,如果该静态属性是一个final类型,并且在编译阶段就能确定下来,那么该类也将不会初始化,后面将会给出例子
4.初始化该类的子类
5.运行该类,也就是说该类中有main方法
下面给出第三点的例子:
class MyTest{
static{
System.out.println("static do");
}
static final String str="hello rihui";
//如果换成下面这个那么将会把MyTest初始化,因为在编译阶段不能确定下str的值
//static final String str="hello rihui"+System.currentTimeMillis();
}
public class TestStaticFinal {
public static void main(String[] args){
//运行结果只打印了 hello rihui
//说明MyTest类还没有被初始化
//因为在编译的时候,发现str是static final的,并且它的值可以在编译阶段就可以确定下来,因此会把
//str当作“宏变量来处理”,直接将MyTest.str替换成了hello rihui
//因此并不会初始化MyTest类
System.out.println(MyTest.str);
}
}
- java中类初始化时机
- 类中属性初始化时机
- java类的初始化时机
- java 类初始化的时机
- java中实例变量的初始化时机
- Java类变量的初始化时机
- Java 变量初始化时机
- java中构造函数中变量初始化时机
- 五、JAVA中类的探究-类变量的初始化时机
- 类的初始化时机
- 类初始化时机
- 类的初始化时机
- 类初始化的时机
- 类初始化时机
- 类初始化的时机
- 类变量初始化时机
- Java静态变量初始化时机
- Java 程序加载加载--------类的初始化时机
- 多线程编程--5种方法实现线程同步
- 如何让Oracle表列管理更加简单
- android static 惹祸
- QTableView根据标题文字和表格文字自适应宽度 QTableView m_pTable;
- DEDE5.7相关文章及全站相关文章的调用和修改
- java中类初始化时机
- 面试常考 类 对象 接口 继承 多态 异常 多线程 集合框架 泛型 IO流
- Uncompressing Linux... done, booting the kernel (问题集锦)
- 在linux下搭建OpenCASCADE开发环境(freetype,freeimage,ftgl,qt...)
- QT隐藏工具栏上的右键菜单
- PS
- QT两个字符串转化函数,避免文字乱码。
- QT线程初次使用。遇到的问题。
- 翻译