zoukankan      html  css  js  c++  java
  • 静态变量、代码块、和静态方法的执行顺序

    我们来看一段代码,下面的代码一目了然

    class A{
        static int i=0;
        static {
            System.out.println("静态代码块A");
        }
        public A(){
            System.out.println("构造方法A");
        }
    
        {
            System.out.println("代码块A");
        }
    
        static {
            i++;
            System.out.println("在类A中静态变量i="+i);
        }
    }
    public class B extends A{
    
    
        static {
            System.out.println("静态代码块B");
        }
        public B(){
            System.out.println("构造方法B");
        }
        {
            System.out.println("代码块B");
        }
        public static void main(String[] args) {
            System.out.println("main方法");
            new B();
            System.out.println("--------------------");
            new B();
        }
    
        static {
            i++;
            System.out.println("在类B中静态变量i="+i);
        }
    
    }
    

      执行结果

    我们可以得出以下结论

    • 静态变量是全局变量
    • 静态方法在类加载时被执行,只会被执行一次
    • 静态变量和静态方法按照声明的顺序依次执行
    • 父类的静态方法>子类的静态方法>Main函数>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法

     

  • 相关阅读:
    刷题笔记
    布隆过滤器
    单例模式,堆,BST,AVL树,红黑树
    B树、B-树、B+树、B*树【转】,mysql索引
    数据结构与算法80道
    海量数据处理【转】
    volcanol的工控博客
    volcanol的工控博客
    volcanol的工控博客
    volcanol的工控博客
  • 原文地址:https://www.cnblogs.com/my12/p/9858848.html
Copyright © 2011-2022 走看看