第二章 类与对象
l 完成器 :仅仅将完成器用于必要的清除任务,如释放有对象分配的内存缓冲区,或者关闭网络连接。
protected void finalize () throws Throwable {
//DO SOMETHING
}
完成器的自动运行和无用单元收集有关。不要依赖无用单元收集来运行完成器,因为不能保证无用单元收集什么时候发生。千万不要直接调用finalize。
l 控制一个应用程序中完成器的使用
类 :java.lang.System
方法 : void runFinalization()
此函数要求JVM运行所有被删除对象的完成器,仅当执行这些完成器中的代码对你的应用程序的正确执行而言是绝对有必要的时候你才应该这样做,因为此函数会对性能造成消极影响。一般在调用System.gc 之后,使用这个函数。
l 克隆对象
类:java.lang.Obhect
目的:Object类定义了一些在引用类型的所有对象中都可以使用的方法
方法 :Object clone ()
clone进行浅复制,将对象中的基本类型复制,而如果一个对象里面有引用类型数据成员,则简单的复制其引用。
使对象可以被克隆:在复制对象的情况下,克隆是否发生取决于是否定义了这个类以实现接口Cloneable。此接口类似于一个开关,当其实现时,则假定该类调用clone是安全的,若没实现且调用clone,则抛出CloneNotSupportedException(可以用try-catch块或者将此异常抛出(在函数声明中声明抛出异常))。