
正文
java静态代码块实例 java中静态代码块
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
关于java静态代码块的详细运行过程问题
废话,静态块先执行,类加载的时候就执行,一个类要想运行,首先被Java虚拟机将class文件内部字节码指令读取至内存并且包装成一个Class类型的对象,这个过程称为类加载,Class类的一个对象是对某一个类的一个描述!
不是说运行到Chinese.sing();时输出了static code,Chinese.sing();是什么?是方法调用,Chinese是类,sing是该类的静态方法,你要想调用sing方法,首先第一步就是类加载,类都没加载,Java虚拟机都不认识他,运行个屁呀!
所以第一步是类加载,注意!static块,也就是静态块,在类加载的时候就执行了,而且只执行一次,因为不可能进行第二次类加载,从这个意义上说,静态的成员是第一时间执行的,然后才轮到别人!
相关问答
Q1: Java中静态块的用法
结果:
10
首先,static模块在类加载中首先会被加载且只会被加载一次,构造函数则可以多次加载。
加载顺序为:static模块、构造方法
主方法(程序入口)main方法中,new A();,所以会去加载static{}。在static中又一次new A,所以会调用其构造方法public A() {},此时打印出来的内容是 i=0 j=0,二者都是初始化的值。
static模块加载之后,会去加载其构造方法。此时i在static中赋值为10,j不变,所以在构造方法的第二次调用中打印的是i=10 j=0。
Q2: java中详解静态代码块,构造代码块,构造方法。求简单易懂的解释
静态代码块:只要一用到某个类,那么这个类的静态代码块就先执行,比如:
public class Dog(){
int i = 0;
static {
i = 1;
}
public Dog(){
i = 2;
}
}当你new 一个Dog()对象时,首先i=
1 会执行,然后才执行
public Dog(){}这个方法。
pulic
Dog() 是与类同名、没有返回值的方法,也就是构造方法。
构造方法的作用是用来初始化一个对象的。比如你可以在里面写
i
=
2;
那么当你 Dog
d
=
new
Dog()执行这段代码的时候,是这样的:
首先
i
=
;
然后执行static 静态代码块,此时i=
1;
最后执行public
Dog();
i
=
2;
Q3: Java的静态块和初始化块分别何时执行?有什么区别?
静态初始化块:当类第一次加载时执行。
非静态初始化块:非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被执行。
区别如下:
1、执行次数不同
静态块只执行一次,初始化块可以执行多次。
2、作用不同
静态初始化块仅能初始化类变量,即static修饰的数据成员。
非静态初始化块可以初始化类的实例变量。
扩展资料:
使用Java静态代码块注意事项:
1、它是随着类的加载而执行,只执行一次,并优先于主函数。具体说,静态代码块是由类调用的。类调用时,先执行静态代码块,然后才执行主函数的。
2、静态代码块其实就是给类初始化的,而构造代码块是给对象初始化的。
3、静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。
4、一个类中可以有多个静态代码块。
5、对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)(变量、初始化块)构造器。
Q4: java中静态代码块的作用跟用法
Java静态代码块的作用java静态代码块实例:Java静态代码块中的代码会在类加载JVM时运行java静态代码块实例,且只被执行一次java静态代码块实例,也就是说这些代码不需要实例化类就能够被调用。一般情况下,如果有些代码必须在项目启动的时候就执行的时候,就需要使用静态代码块。
Java静态代码块的用法:一个类可以使用不包含在任何方法体中的静态代码块java静态代码块实例,当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化。例如:
static
{
int a=0;
}
Q5: java中的静态代码块、代码块、构造器的执行顺序是怎样呢,这三者有什么作用呢
先说执行顺序:我们在new一个对象时,如果类还没加载,就需要先将类加载到内存,此时就会执行静态代码块,在创建对象时,是先执行代码块,然后执行构造器。所以静态代码块、代码块、构造器的执行顺序是:静态代码块→代码块→构造器。
再说作用:静态代码块是用于初始化类的(在加载类时执行,只执行一次),代码块是用于初始化对象的(在创建对象时执行,每次创建对象时都执行),构造器是用于创建对象的。
关于java静态代码块实例和java中静态代码块的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








