• java中的代码块、构造方法、方法的调用顺序


    一、调用顺序

    1、当调用一个实例方法时:

      静态代码块——代码块——构造方法——实例方法

    2、当调用一个静态方法时

      静态代码块——静态方法

    3、当调用多个实例方法

      静态代码块——代码块——构造方法1——实例方法1——构造方法2——实例方法2

    注意:静态代码块只会执行一次,即在写入jvm中时执行。多次实例化对象,不会重复创建。

    二、测试实例

      测试实体类: 

    public class Emp {
        static {
            System.out.println("静态代码块:"+System.currentTimeMillis());
        }
        
        {
            System.out.println("代码块:"+System.currentTimeMillis());
        }
        
        public static void staticMethod() {
            System.out.println("静态方法:"+System.currentTimeMillis());
        }
        
        public Emp() {
            System.out.println("构造方法:"+System.currentTimeMillis());
        }
        
        public void method() {
            System.out.println("实例方法:"+System.currentTimeMillis());
        }
        
        
    }

    1、执行一个实例方法

    public class TestSort {
        public static void main(String[] args) {
    //        Emp.staticMethod();
            Emp emp = new Emp();
            emp.method();
    //        Emp emp2 = new Emp();
    //        emp2.method();
        }
    }

    结果:

    静态代码块:1596012952882
    代码块:1596012952882
    构造方法:1596012952882
    实例方法:1596012952882

    2、执行一个静态方法

    public class TestSort {
        public static void main(String[] args) {
            Emp.staticMethod();
    //        Emp emp = new Emp();
    //        emp.method();
    //        Emp emp2 = new Emp();
    //        emp2.method();
        }
    }

    结果:

    静态代码块:1596013004340
    静态方法:1596013004340

    3、执行多个实例方法

    public class TestSort {
        public static void main(String[] args) {
    //        Emp.staticMethod();
            Emp emp = new Emp();
            emp.method();
            Emp emp2 = new Emp();
            emp2.method();
        }
    }

    结果:

    静态代码块:1596013069943
    代码块:1596013069944
    构造方法:1596013069944
    实例方法:1596013069944
    代码块:1596013069944
    构造方法:1596013069944
    实例方法:1596013069944
    就算这个世道烂成一堆粪坑,那也不是你吃屎的理由
  • 相关阅读:
    微服务简介
    docker跨主机通信扁平化网络的设计与实现
    docker学习ppt
    docker原理介绍
    我的博客搬家啦
    响应式之像素和viewport
    换行+省略号
    ITerms2在mac系统下的安装和配色,并和go2shell关联
    利其器之webstorm快捷键
    React入门 (2)—实现微博展示列表
  • 原文地址:https://www.cnblogs.com/whalesea/p/13398187.html
Copyright © 2020-2023  润新知