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

java中对象的初始化问题

时间:2015-10-14 14:12:31      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

最近又把java编程思想看了看。又有些收获。此书确实不错

java中的初始化相信很多人都知道。但是具体的初始化步骤,初始化几次确不一定。上代码

 

public class A{

    public static A a = new A();

    public static int i;

    public static int j= 2;

   

    public A(){

        i++;

        j++;

    }

   

    public static void main(String[] args){

        A a1= new A();

        System.out.println("i = " + a1.i);

        System.out.println("j= " + a1.j);

    }

}

输出结果是什么呢?

2和3.

对于java而言,构造对象时首先会执行自动初始化动作。即 初始化为

A=null;
i=0;
j=0;

  然后再次初始化话定义的默认值

a=new A();

 此处执行构造器导致i++,j++,结果

i=1;
j=1;

之后给a赋值,此时a不在为null,

然后就有点意思了

继续执行 i的默认初始化,因为i没有设置默认值,所以i还是1,然后j由于有默认值j变成了2

i=1;
j=2;

 最后在执行构造器i++,j++

最后结果

i=2;
j=3;

如果此处把a这个特殊的情况去除可以看出。初始化有三个步骤:

1.自动初始化为基本类型0,引用类型为null

2.设置默认值

3.执行构造器

 

 

 


 

java中对象的初始化问题

标签:

原文地址:http://www.cnblogs.com/wanglonghai/p/4877076.html

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