码迷,mamicode.com
首页 > 编程语言 > 详细

在java类中,是先执行类的构造函数还是先执行类的私有非静态变量

时间:2016-11-27 19:18:46      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:log   顺序   []   静态代码块   print   执行   blog   system   instance   

举例子:

package test_instance;

public class TestClassLoaderTime {  
       
       public TestClassLoaderTime(){  
            System.out.println("构造器执行");  
       }
       
       {  
             System.out.println("静态代码块执行");  
       }  
       static Demo2 demo2 = new Demo2();  
       
       private Demo3 demo3 = new Demo3();  
       
       public static void main(String[] args) {  
              System.out.println("main方法执行");  
              new TestClassLoaderTime();  
              System.out.println("TestClassLoaderTime实例化过");  
        }  
       
    }  


执行结果:

Initialization the Demo2.....
main方法执行
静态代码块执行
Initializaiton the Demo3....
构造器执行
TestClassLoaderTime实例化过

所以是按照如下顺序执行的:

1.Demo2的构造函数执行   (静态属性)
2.main方法执行  
3.静态代码块执行  
4.Demo3的构造函数执行    (非静态属性)
5.构造器执行               
6.TestClassLoaderTime实例化过  

 

在java类中,是先执行类的构造函数还是先执行类的私有非静态变量

标签:log   顺序   []   静态代码块   print   执行   blog   system   instance   

原文地址:http://www.cnblogs.com/Berryxiong/p/6106752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!