java初始化与构造方法执行顺序测试

本文通过一个简单的Java程序演示了静态初始化块、普通初始化块及构造方法的执行顺序,并解释了这些概念在面向对象编程中的作用。

终于又深入一步,开始学习面向对象的编程了。这中间涉及到的很多概念以及思想我之前只是大致有那么一个概念轮廓,了解的十分肤浅。正好趁此机会好好学习了解一下。

属性以及方法是Java面向对象编程的两个很重要的概念,而两者分别又涉及多个知识点。这里只是想简单测试一下静态初始化块的一点特性,看一下静态初始化块、普通初始化块以及构造方法的执行顺序。

写测试代码如下;

  1 package study_01;

  2 

  3 public class Init {

  4 

  5     int var1;

  6 

  7     public Init(){

  8         System.out.println("构造方法执行");

  9     }

 10 

 11     {

 12         var1 = 1;

 13         System.out.println("普通初始化执行");

 14     }

 15 

 16     static{

 17         System.out.println("静态初始化执行");

 18     }

 19 

 20     public static void main(String[] args) {

 21         // TODO Auto-generated method stub

 22         Init init1 = new Init();

 23         Init init2 = new Init();

 24     }

 25 

 26 }


程序运行的结果如下:



    由上面的运行结果基本可以得出结论:程序运行时,静态初始化块首先被执行。然后,执行普通初始化块。最后,执行构造方法。静态初始化块只在类加载的时候执行一次,因此第二次创建对象的时候静态初始化块并没有被执行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值