Java学习笔记(一)

 构造函数确保初始化

    当实例化一个对象时,所要进行了的工作,如:

  a.当调用到Dog类的成员或方法时,解释器通过class路径搜寻Dog.class类文件
  b.加载这个类文件,初始化static成员,静态初始化只在Class类对象首次加载的时候执行一次
  c.当用new Dog()创建对象的时候,将在堆上为Dog对象分配足够的内存
  d.Dog对象中的所有基本类型数据都设置成了缺省值
  e.执行所有字段初始化动作
  f.执行构造器.

初始化顺序:
      先初始化"静态"对象,再初始化“非静态”对象,当静态对象所在的类没有加载时,这个静态对象不会被初始化,但是被加载后,静态对象只被初始化一次。当一个类被加载时,所定义的实例对象无论散布于任何方法之间,它仍旧在任何方法(包括构造方法)调用之前都会被初始化。
例如:

public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
      B b = new B();
     
 }

}
class A{
 A(int mark)
 {
  System.out.println("A("+mark+")");
 }
}
class B{
 B()
 {
  System.out.println("B");
 }
 A a1 = new A(1);
 
 A a2 = new A(2);
 
}

输出结果为:
A(1)
A(2)
B
即使B()构造在a1实例对象之前,结果也是同样,因为在Test中new B()时,在B这个类中首先初始化A所有的实例对象,再调用B的构造方法。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值