今天给各位分享java静态代码块调用的知识,其中也会对java中的静态代码块进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、java静态代码块真的能优先执行吗2、java中的静态代码块、代码块、构造器的执行顺序是怎样呢,这三者有什么作用呢3、关于java静态代码块的详细运行过程问题4、java静态代码块什么时候执行
java静态代码块真的能优先执行吗
static代码块是在类初始化时就被虚拟机执行的,所以最先输出的是d。
main方法是静态方法,是在类加载完之后由虚拟机调用的,调用之后才会输出c1。
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;
java中的静态代码块、代码块、构造器的执行顺序是怎样呢,这三者有什么作用呢
先说执行顺序:我们在new一个对象时,如果类还没加载,就需要先将类加载到内存,此时就会执行静态代码块,在创建对象时,是先执行代码块,然后执行构造器。所以静态代码块、代码块、构造器的执行顺序是:静态代码块→代码块→构造器。
再说作用:静态代码块是用于初始化类的(在加载类时执行,只执行一次),代码块是用于初始化对象的(在创建对象时执行,每次创建对象时都执行),构造器是用于创建对象的。
关于java静态代码块的详细运行过程问题
废话,静态块先执行,类加载的时候就执行,一个类要想运行,首先被Java虚拟机将class文件内部字节码指令读取至内存并且包装成一个Class类型的对象,这个过程称为类加载,Class类的一个对象是对某一个类的一个描述!
不是说运行到Chinese.sing();时输出了static code,Chinese.sing();是什么?是方法调用,Chinese是类,sing是该类的静态方法,你要想调用sing方法,首先第一步就是类加载,类都没加载,Java虚拟机都不认识他,运行个屁呀!
所以第一步是类加载,注意!static块,也就是静态块,在类加载的时候就执行了,而且只执行一次,因为不可能进行第二次类加载,从这个意义上说,静态的成员是第一时间执行的,然后才轮到别人!
java静态代码块什么时候执行
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用
比如main方法就必须是静态的
java静态代码块调用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中的静态代码块、java静态代码块调用的信息别忘了在本站进行查找喔。