Java中静态初始化块、初始化块和构造方法的执行过程

本文介绍了Java中静态初始化块、初始化块和构造方法的执行过程,并通过代码实例展示了它们的执行顺序。重点在于解释静态代码块只会在类首次加载时执行一次的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近比较忙,直接转载现成的。

本文转载地址为:http://advance0683.iteye.com/blog/1107653


Java中静态初始化块、初始化块和构造方法的执行过程

 

例子:

Java代码   收藏代码
  1. package classmate;  
  2.   
  3. public class Team {  
  4.   
  5.     public static void main(String[] args) {  
  6.         Person p = new Person();  
  7.         System.out.println("------------------------------");  
  8.         Person p1 = new Person();  
  9.     }  
  10.   
  11. }  
  12.   
  13. class Person{  
  14.     //构造方法  
  15.     public Person(){  
  16.         System.out.println("Person Constructor...");  
  17.     }  
  18.       
  19.     //初始化代码块  
  20.     {  
  21.         System.out.println("Person Initialization Block...");  
  22.     }  
  23.       
  24.     //静态代码块  
  25.     static {  
  26.         System.out.println("Person Static Block...");  
  27.     }  
  28. }  

   

   运行结果:

  

Java代码   收藏代码
  1. Person Static Block...  
  2. Person Initialization Block...  
  3. Person Constructor...  
  4. ------------------------------  
  5. Person Initialization Block...  
  6. Person Constructor...  

   

 

   当创建第一个Person对象p的时候,执行顺序应该是 静态代码块 >  初始化代码块  > 构造方法,但是当创建第二个Person对象p1的时候,执行顺序就变成了 初始化代码块  > 构造方法。原因很简单,因为 静态代码块只会在类第一次装入系统中才会执行,以后类在装入系统的时候,它就不执行了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值