zoukankan      html  css  js  c++  java
  • 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
    就算这个世道烂成一堆粪坑,那也不是你吃屎的理由
  • 相关阅读:
    react 采坑记录
    理解JS 模块化
    MongoDB使用教程
    scss
    gulp 使用教程
    node.js 简单入门
    jQuery
    jQuery
    php+mysql+bootstrap 实现成绩管理系统
    SVN的commit功能用bat实现
  • 原文地址:https://www.cnblogs.com/whalesea/p/13398187.html
Copyright © 2011-2022 走看看