Java对象生命周期

一个对象的完整生命周期涉及Java平台的很多相关技术。

1.在创建一个Java类的对象之前,需要先由虚拟机加载该Java类。

2.在Java类被加载之后,还需要对该Java类进行链接和初始化。

3.初始化完成之后,才能创建出该构造方法来完成。

4.当不再有引用指向一个对象时,这个对象成为垃圾回收的候选。

5.对象终止机制提供了一种方式在对象被回收之前进行清理工作。

6.当需要复制一个对象时,可以使用Object类的clone方法。

package java.lang;

public class Object
{
  private static native void registerNatives();

  public final native Class<?> getClass();

  public native int hashCode();

  public boolean equals(Object paramObject)
  {
    return (this == paramObject);
  }

  protected native Object clone()
    throws CloneNotSupportedException;

  public String toString()
  {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
  }

  public final native void notify();

  public final native void notifyAll();

  public final native void wait(long paramLong)
    throws InterruptedException;

  public final void wait(long paramLong, int paramInt)
    throws InterruptedException
  {
    if (paramLong < 0L) {
      throw new IllegalArgumentException("timeout value is negative");
    }

    if ((paramInt < 0) || (paramInt > 999999)) {
      throw new IllegalArgumentException("nanosecond timeout value out of range");
    }

    if ((paramInt >= 500000) || ((paramInt != 0) && (paramLong == 0L))) {
      paramLong += 1L;
    }

    wait(paramLong);
  }

  public final void wait()
    throws InterruptedException
  {
    wait(0L);
  }

  protected void finalize()
    throws Throwable
  {
  }

  static
  {
    registerNatives();
  }
}


7.如果需要将对象的状态持久化,可以使用对象序列化机制来得到一个方便存储的字节流。


对象序列化用来在虚拟机中的活动对象和字节流之间进行转换。序列化机制通常包括两个过程:第一个是序列化(serialization),把活动对象的内部状态转换成一个字节流;第二个是反序列化(deserialization),从一个字节流中得到可以直接使用的Java对象。这两个过程对应于保存和读取两个不同的操作。

序列化操作可以作为持久化实现的基础。通过序列化得到的字节流可以保存在文件中,也可以作为二进制数据保存在数据库中。序列化的好处是为开发人员省去繁琐的数据转换操作,所有的数据转换都有Java平台完成,并提供相应的扩展方式允许开发人员进行自定义。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值