- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java对象的生命周期、
第11 章 对象的生命周期
在 Java 虚拟机管辖的运行时数据区,最活跃的就是位于堆区的生生息息的对象。在 Java
虚拟机的生命周期中,一个个对象被陆续地创建,又一个个被销毁。在对象生命周期的开始
阶段,需要为对象分配内存,并且初始化它的实例变量。当程序不再使用某个对象时,它就
会结束生命周期,它的内存可以被 Java 虚拟机的垃圾回收器回收。
11.1 创建对象的方式
在 Java 程序中,对象可以被显式地或者隐含地创建。创建一个对象就是指构造一
个类的实例,前提条件是这个类已经被初始化,第 10 章(类的生命周期)已经对此做
了详细介绍。
有 4 种显式地创建对象的方式:
用 new 语句创建对象,这是最常用的创建对象的方式。
运用反射手段,调用 java.lang.Class 或者 java.lang.reflect.Constructor 类的
newInstance()实例方法。
调用对象的 clone()方法。
运用反序列化手段,调用java.io.ObjectInputStream 对象的 readObject()方法,
参见第 16 章的 16.12 节(对象的序列化与反序列化)。
例程 11-1 (Customer.java )演示了用前面3 种方式创建对象的过程。
例程11-1 Customer.java
public class Customer implements Cloneable{
private String name;
private int age;
public Customer(){
this(unknown,0);
System.out.println(call default constructor);
}
public Customer(String name,int age){
=name;
this.age=age;
System.out.println(call second constructor);
}
public Object clone ()throws CloneNotSupportedException{return super.clone();}
public boolean equals(Object o){
if(this==o)return true;
if(! (o instanceof Customer)) return false;
Java 面向对象编程
final Customer other=(Customer)o;
if(.equals() this.age==other.age)
return true;
else
return false;
}
public String toString(){return name=+name+,age=+age;}
public static void main(String args[])throws Exception{
//运用反射手段创建Customer对象
Class objCl
文档评论(0)