• java类中,成员变量赋值第一个进行,其次是静态构造函数,再次是构造函数


    如题是结论,如果有人问你Java类的成员初始化顺序和初始化块知识就这样回答他。下面是代码:

    package com.test;
    
    
    public class TestClass{
        // 成员变量赋值第一个执行
        private static int m1=1;
        private int m2=1;
        
        // 静态构造函数第二个执行
        static{
            System.out.println("成员变量赋值先于静态构造函数 m1="+m1);
            m1=2;
        }
        
        // 构造函数第三个执行
        public TestClass(){
            System.out.println("静态构造函数先于构造函数 m1="+m1);
            m1=3;
            
            System.out.println("成员变量赋值先于构造函数 m2="+m2);
            m2=3;
        }
        
        public void printM1m2(){
            System.out.println("m1="+m1);
            System.out.println("m2="+m2);
        }
        
        public static void main(String[] args){
            TestClass t=new TestClass();
            t.printM1m2();
        }
    }

    控制台输出:

    成员变量赋值先于静态构造函数 m1=1
    静态构造函数先于构造函数 m1=2
    成员变量赋值先于构造函数 m2=1
    m1=3
    m2=3
  • 相关阅读:
    完美世界笔试(动态规划,背包问题)
    腾讯笔试3
    腾讯笔试2
    腾讯笔试1
    阿里笔试1
    Merge Sorted Array
    Partition List
    Reverse Linked List II
    Remove Duplicates from Sorted List II
    白菜刷LeetCode记-704. Binary Search
  • 原文地址:https://www.cnblogs.com/heyang78/p/7426465.html
Copyright © 2020-2023  润新知