类的构造和销毁

额,罪过做过,已经好几天没写博客了,今天多补几篇,嘿嘿。

想了想,其实大部分内容都是看书的总结而已,算不上原创,以后如果没有比较多的自己的代码还是写成装载比较好。

 

这里主要记录一下类的构造,初始化和销毁的过程。

构造

有如下几个特别的地方

  • java延续了c++的方式使用构造器进行构造。
  • 有一个默认构造器,如果自定义了构造器则默认构造器不再存在。
  • 构造器能够重载。
  • 重载之后如果想调用本类的其他构造器可以使用this(param)。如果是想调用父类的构造器可以使用super(param)。这两种调用只能存在一个,并且需要在构造器的第一行。

初始化

默认初始化

当类载入的时候会伴随着内存清零进行成员变量的默认初始化。初始化的值为:

char 是'/0000',int 0 ,float,double是0.0.boolean是false,引用是null。

类被载入系统中之后,就会进行一些初始化。结合类的加载,整体是这样的一个过程:

  • 首先是进行类的加载,把二进制代码和类型信息加载到文本段。先加载父类,后加载子类,加载的同时对static类型的变量进行初始化。初始化顺序按照代码的顺序,并且static类型的变量只初始化一次。
  • 开始构造,同样是从父类开始构造,先进行实例变量的初始化,然后开始执行构造器,如果有显示的this则先执行显示的this调用。
  • 然后构造子类,先进行子类的实例变量的初始化,然后开始执行构造器,如果有显示的this则先执行显示的this调用。
  • 看如下的代码例子:

 

销毁

哈哈,极为简单。就一句话,JVM会为你进行垃圾清理的。只要是没有引用指向的内存空间都是垃圾。

这里需要注意 finalize()方法在java中也不是析构函数,只是一个消亡时会调用的函数,通常我们有两种方式来使用它:

  • 调用其他语言的析构函数。
  • 来查看对象消亡是的某一属性是否是我们想要的状态,可以用来跟踪错误。如下面的代码所示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值