• java关于静态代码块和构造方法的执行顺序的探讨


    下面以一个小demo为例进行探讨

     

     

     运行结果:

    class A static
    class B static
    I'm A class
    class A
    I'm B class
    class B

    由此可见:执行顺序是:静态初始化块 -> 初始化块 -> 构造方法

    =========================================================

    package com.algorithm;
    
    public class Animal {
        private int count;
    
        public int getCount() {
            return count;
        }
    }
    

      

    package com.algorithm;
    
    public class Panada {
        public static void main(String[] args) {
            Animal animal = new Animal();
            System.out.println("========"+animal.getCount());
        }
    }
    

      

    运行结果:0

    package com.algorithm;
    
    public class Animal {
        private static int count;
    
        public static int getCount() {
            return count;
        }
    }
    

      

    package com.algorithm;
    
    public class Panada {
        public static void main(String[] args) {
            System.out.println("========"+Animal.getCount());
        }
    }
    

      

    运行结果:0

    package com.algorithm;
    
    public class Animal {
        private static int count;
    
        static {
            count=2;
        }
    
        public static int getCount() {
            return count;
        }
    }
    

      

    package com.algorithm;
    
    public class Panada {
        public static void main(String[] args) {
            System.out.println("========"+Animal.getCount());
        }
    }
    

      

    运行结果:2

  • 相关阅读:
    Java IO/NIO
    LeetCode—— 两两交换链表中的节点
    LeetCode——合并K个排序链表
    LeetCode第201场周赛
    LeetCode第202场周赛
    LeetCode215. 数组中的第K个最大元素
    LeetCode213. 打家劫舍 II
    LeetCode212. 单词搜索 II
    LeetCode211. 添加与搜索单词
    LeetCode210. 课程表 II
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/12220991.html
Copyright © 2020-2023  润新知