顺序执行,就是正常情况下
选择执行(分支),就是用if else...可以使用多次,还有个switch? case
循环执行,常用的用for循环,while循环,do while循环
就我理解题意好像就这三种
先说执行顺序:我们在new一个对象时,如果类还没加载,就需要先将类加载到内存,此时就会执行静态代码块,在创建对象时,是先执行代码块,然后执行构造器.所以静态代码块、代码块、构造器的执行顺序是:静态代码块→代码块→构造器.
再说作用:静态代码块是用于初始化类的(在加载类时执行,只执行一次),代码块是用于初始化对象的(在创建对象时执行,每次创建对象时都执行),构造器是用于创建对象的.
静态初始化块:当类第一次加载时执行.
非静态初始化块:非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被执行.
区别如下:
①.、执行次数不同
静态块只执行一次,初始化块可以执行多次.
静态初始化块仅能初始化类变量,即static修饰的数据成员.
非静态初始化块可以初始化类的实例变量.
扩展资料:
使用Java静态代码块注意事项:
①.、它是随着类的加载而执行,只执行一次,并优先于主函数.具体说,静态代码块是由类调用的.类调用时,先执行静态代码块,然后才执行主函数的.
原因就是一句话:先有了父亲,才会有儿子!
程序运行时,加载AB两类,因为A是B子类,所以先加载B类,Load B,再加在A类 LoadA,调用A a = new A()代码时,会先调用其父类B的构造方法 Create B 再调用A的构造方法 Create A
①父类静态代码块;
举例:
public class ExA {
static {
System.out.println("父类静态代码块.");
}
public ExA() {
System.out.println("父类构造函数.");
{
System.out.println("父类非静态代码块.");
public static void main(String[] args) {
new ExB();
class ExB extends ExA {
System.out.println("子类静态代码块.");
System.out.println("子类非静态代码块.");
public ExB() {
System.out.println("子类构造函数.");
执行结果:父类静态代码块.子类静态代码块.父类非静态代码块.父类构造函数.子类非静态代码块.子类构造函数.
以上就是土嘎嘎小编为大家整理的java代码块加载顺序相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!