Java中对象的生命周期
(1) 对象生命周期的开始
对象生命周期开始时,需要为对象分配内存,并且初始化它的实例变量;
对象生命周期结束
Java虚拟机的垃圾回收线程回收对象的内存。
(2) 创建一个对象指创建一个类的实例,前提是类被初始化,对象可以被显式或者隐式创建,显式创建对象有以下几种方式
a. new语句创建对象
b.利用反射机制,调用java.lang.Class的forName()和java.lang.reflect.Constructor的newInstance()方法
Class objClass = Class.forName("Customer");
Customer c = (Customer)objClass.newInstance();
c.调用对象的clone()方法
d.运用反序列化方法,调用java.io.ObjectInputStream类的readObject()方法
(3)使用new或者反射的方法时,会执行类的构造函数,使用对象的clone方法,不会调用构造函数。
(4)关于clone()
a. Object类中声明为protected类型,如果Object的子类想对外公开clone()方法,需要扩大访问权限;
b. 使用clone()方法需要实现Cloneable接口;
c.调用clone()方法会创建一个复制的对象,这个对象和原来的对象具有不同的内存地址,但是他们的属性值相同;
(5)隐式地创建对象
a. java命令的命令行参数
b. String类型的直接数对应一个String对象
c. 字符串操作符“+”结果为一个新的String对象
&
相关文档:
系统自动抛出的异常
所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行。
语句抛出的异常
用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常。
throw是语句抛出 ......
public class SplitString {
/**
* @param args
*/
public static void main(String[] args) {
String str = "中Zell中国5000年,Congruations!";
& ......
大学两年了,一直浑浑噩噩,最近上了一些学习论坛,发现自己的知识太匮乏了,感觉怎么的自己也是个软件专业的学生,学了两年讲到应用却什么都不会,于是我觉得开始奋斗的人生!!!于是我选择了Java这么语言作为我奋斗的起点,原因很多,第一,在大学学过C和C++(只是学过,学的很不好),所以有点编程的基础吧,第二,Ja ......
Publication and Escape 发布一个对象意味着能够从它能够从它当前范围之外被访问到。比如,保存可以被其他代码找到的这个对象的一个引用,或者将其作为一个非私有方法的返回值,或者将其作为参数传递给其它的类。 public static Set<Secret> knownSecrets;
public void initialize() {
knownSecrets = new Ha ......
昨天写了用面向对象的思想去分析一个实际的问题,呵呵,那么今天就就类和对象做一个详细的讨论。
昨天说了在CS中人物可能是一个抽象类或一个接口,而各种各样的人物就是继承或实现了这个接口,而说到这里我们还在讨论类,还没有涉及到对象,那么什么时候产生的对象呢?那是咱登陆了CS后选择了一个人物,然后再我们选好的同 ......