java中的自由块分为静态的自由块和非静态的自由块。非静态自由块的执行时间是:在执行构造函数之前。静态自由块的执行时间是:class文件加载时执行。
java中的自由块分为静态的自由块和非静态的自由块。
非静态自由块的执行时间是:在执行构造函数之前。
静态自由块的执行时间是:class文件加载时执行。
非静态自由块可以多次执行,只要初始化一个对象就会执行,但是静态自由块只会在类装载的时候执行一次,一般用来初始化类的静态变量的值。
每次初始化一个对象,都会导致一次非静态块的执行。
如果涉及到继承,则是:首先执行父类的非静态块,然后是父类的构造函数,接着是自己的自由块,最后是自己的构造函数。
静态块的执行时机是在class文件装载的时候,class文件只会装载一次,因此静态块只会执行一次,后面再使用这个类时,不会再执行静态块。
静态块的执行时机是在class装载后的初始化阶段。如果采用ClassLoader的loadclass来仅仅装 载类而不初始化,是不会触发静态块的执行的。采用Class的forname(String)是采用了默认的initialize为true的情况,也就 是初始化了。如果使用forname(String name,boolean initialize, ClassLoader loader),设置initialize为false,则不会执行静态块。
在执行class装载后的初始化阶段包括:运行方法,这个方法中就是类变量的初始化语句和静态自由块语句。这个方法是由java的编译器收集信息后生成的,不能显示的调用。
下面通过例子来说明:
father.javapublic class father {
static{//静态块
System.out.println("father'sstATIC free block running");
}
{//非静态块
System.out.println("father'sfree block running");
}
public father(){
System.out.println("father'sconstructor running");
}
}
上一篇:JAVA使用POI获取Excel的列数与行数下一篇:Java中String、StringBuffer、StringBuilder的区别详解 热门搜索:
执行顺序
顺序执行
按顺序执行
js执行顺序
执行顺序问
相关文章
在Java中自由块的执行顺序
2021-10-06阅读(5529)评论(0)推荐()java中的自由块分为静态的自由块和非静态的自由块。非静态自由块的执行时间是:在执行构造函数之前。静态自由块的执行时间是:class文件加载时执行。
举例说明Java中代码块的执行顺序
2021-11-19阅读(8921)评论(0)推荐()这篇文章主要介绍了举例说明Java中代码块的执行顺序,包括静态属性和非静态属性以及构造函数等相关的执行先后,需要的朋友可以参考下
ruby 程序的执行顺序
2021-10-17阅读(4346)评论(0)推荐()ruby程序的执行是顺序执行的,他是从脚本的第一行执行到最后一行,但是实际执行顺序是
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2021-10-09阅读(6289)评论(0)推荐()下面小编就为大家带来一篇浅谈js在html中的加载执行顺序,多个jquery ready执行顺序。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随...
简单了解java中静态初始化块的执行顺序
2021-11-15阅读(9471)评论(0)推荐()这篇文章主要介绍了简单了解java中静态初始化块的执行顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java中保证线程顺序执行的操作代码
2021-10-19阅读(5334)评论(0)推荐()本文给大家分享一篇教程关于java线程顺序执行问题,如何保证线程的顺序执行呢?今天通过实例代码给大家详细讲解下,感兴趣的朋友跟随小编一起看看吧
Android代码块执行顺序分析总结
2021-10-05阅读(5837)评论(0)推荐()本篇文章主要介绍了Android代码块执行顺序分析总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
取消
提交评论