zoukankan      html  css  js  c++  java
  • Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序

    结论:执行的大致顺序如下,

      (1) 在一个不存在继承的类中:初始化static变量,执行static初始化块-->初始化普通成员变量(如果有赋值语句),执行普通初始化块-->构造方法

      (2)在一个存在继承的类中:初始化父类static成员变量,运行父类static初始化块-->初始化子类static成员变量,运行子类static初始化块-->初始化父类实例成员变量(如果有赋值语句),执行父类普通初始化块-->父类构造方法-->初始化子类实例成员变量(如果有赋值语句)及普通初始化块-->子类构造方法。

     测试代码如下:(通过断点查看代码执行顺序)

    public class Student {
        public static int age=11;
        public static String name="lucky";
        public String address="天台";
        static {
            System.out.println("我是静态代码块");
        }
        public Student(){
            System.out.println("我是构造函数");
        }
        public static void test(){
            System.out.println(name);
            System.out.println(age);
        }
    }
    
    public class Sequence {
        public static void main(String[] args) {
            //Student.test();
            Student student=new Student();
        }
    }

    转自:https://blog.csdn.net/yuxin6866/article/details/52245765

  • 相关阅读:
    POJ--3667 Hotel
    Dragon Balls
    Popular Cows
    Tunnel Warfare [HDU--1540]
    CompletableFuture
    Future<V>
    分布式架构知识体系
    异步I/O和非阻塞I/O(轮询)
    同步异步阻塞非阻塞及并发级别
    volatile
  • 原文地址:https://www.cnblogs.com/luckyplj/p/10294369.html
Copyright © 2011-2022 走看看