本文目录一览:
- 1、Java关于代码块的问题
- 2、java中的静态代码块、代码块、构造器的执行顺序是怎样呢,这三者有什么作用呢
- 3、java中详解静态代码块,构造代码块,构造方法。求简单易懂的解释
- 4、Java的静态块和初始化块分别何时执行?有什么区别?
- 5、java中,代码块(初始化块)和构造函数的区别是什么?
- 6、java中静态代码块的作用跟用法
Java关于代码块的问题
这个是因为你的代码写在匿名内部类里面,java在类里只允许声明成员变量和函数,是不能直接写代码的。
代码逻辑应该写在函数内部。
java中的静态代码块、代码块、构造器的执行顺序是怎样呢,这三者有什么作用呢
先说执行顺序:我们在new一个对象时,如果类还没加载,就需要先将类加载到内存,此时就会执行静态代码块,在创建对象时,是先执行代码块,然后执行构造器。所以静态代码块、代码块、构造器的执行顺序是:静态代码块→代码块→构造器。
再说作用:静态代码块是用于初始化类的(在加载类时执行,只执行一次),代码块是用于初始化对象的(在创建对象时执行,每次创建对象时都执行),构造器是用于创建对象的。
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 = 0 ;
然后执行static 静态代码块,此时i= 1;
最后执行public Dog(); i = 2;
Java的静态块和初始化块分别何时执行?有什么区别?
静态初始化块:当类第一次加载时执行。
非静态初始化块:非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被执行。
区别如下:
1、执行次数不同
静态块只执行一次,初始化块可以执行多次。
2、作用不同
静态初始化块仅能初始化类变量,即static修饰的数据成员。
非静态初始化块可以初始化类的实例变量。
扩展资料:
使用Java静态代码块注意事项:
1、它是随着类的加载而执行,只执行一次,并优先于主函数。具体说,静态代码块是由类调用的。类调用时,先执行静态代码块,然后才执行主函数的。
2、静态代码块其实就是给类初始化的,而构造代码块是给对象初始化的。
3、静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。
4、一个类中可以有多个静态代码块。
5、对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)(变量、初始化块)构造器。
java中,代码块(初始化块)和构造函数的区别是什么?
代码块有构造代码块和静态代码块,静态代码块是类加载的时候执行的,一共只执行一次,构造代码块是创建类对象的时候执行的,创建一个对象执行一次,代码块都是用于初始化的,而构造函数是用于创建对象的。
java中静态代码块的作用跟用法
Java静态代码块的作用:Java静态代码块中的代码会在类加载JVM时运行,且只被执行一次,也就是说这些代码不需要实例化类就能够被调用。一般情况下,如果有些代码必须在项目启动的时候就执行的时候,就需要使用静态代码块。
Java静态代码块的用法:一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化。例如:
static
{
int a=0;
}