`
feixingfei
  • 浏览: 45597 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
  • calosteward: 感谢分享,我还找到了另一个也是可以用于c#的代码,是一个英文网 ...
    PDF合并

finalizer

 
阅读更多
子类如果覆盖了父类的finalizer,子类应该手工调用父类的finalizer,应该放在finally里,以确保子类finalize时出异常时,父类finalizer仍被调用

利用匿名类,终结外围实体(enclosing instance),外围实体在一个private instance中存储一个reference,指向终结函数守卫者(finalizer guardian),于是,finalizer guardian在外部实体存在时也存在,当guardian被终结时,它执行外围实体所期望的终结动作。

public class Foo{

private final object finalizerGuardian = new Object(){

protected void finalize() throws Throwable{

//终结外围实体

}

}

}
分享到:
评论

相关推荐

    .NET 常见问答:完成器(Finalizer)、程序集名、方法信息等等

    在我的类中何时需要实现一个完成器?我是否一定要实现完成器,或者只是在我控制着 非托管资源时才需要实现它?我是否一定要在我的完成器中实现 IDisposable 接口?...关键字:finalizer,assembly names,methodinfo

    teclast-f5-ubuntu-finalizer:当前的HWSW KernelSystemACPI修改,以获取$ 400的Dream Ubuntu Linux笔记本电脑

    标题中的“teclast-f5-ubuntu-finalizer”是一个针对Teclast F5笔记本电脑的项目,目的是优化Ubuntu Linux在该设备上的运行效果。这个项目可能包含特定的硬件和软件调整,尤其是对Kernel(内核)、System ACPI(系统...

    flexipatch-finalizer:自定义预处理器,用于从flexipatch版本中删除未选择的补丁,从而保留最终的补丁版本

    flexipatch-finalizer是一个自定义预处理器,它使用相同的配置文件,并剥离所有未使用代码的flexipatch构建,从而保留应用了选定补丁的软件构建。 该终结器的示例flexipatch构建可用于: :warning: 请务必注意,...

    软件编程词汇表(一些编程词汇的解释)

    在Java中,每个对象都可以有一个finalizer方法,它通常用于执行清理工作,如关闭文件或释放资源。然而,依赖finalizer方法来进行资源管理被认为是不可靠的。 #### 31. 垃圾收集 (Garbage Collection) 垃圾收集是...

    内存管理,GC机制,内存释放过程

    3. 如果在Finalizer表上有记录,那么将记录移到另外的一张表上,在这里我们叫它Finalizer2。 4. 如果不在Finalizer2表上有记录,那么释放内存。 Finalizer的概念: 在.NET中,Destructor的概念已经不存在了,它...

    Troubleshooting Memory Problems-Poonam Parhar.pdf

    2. Excessive use of Finalizers:Finalizer是一种特殊的对象,它可以在垃圾回收器清理对象时执行一些操作。但是,如果Finalizer使用不当,可以导致内存泄漏和性能问题。 3. Explicit GC Invocations:垃圾回收器是...

    编写高效优雅Java程序.docx

    * 使类和成员的可访问性最小化,避免使用终结方法finalizer方法。 * 使可变性最小化,尽量使类不可变。 三、成员变量设计 在成员变量设计中,需要注意以下几点: * 使用static成员变量,避免创建不必要的对象。 *...

    如何执行Java代码审查

    4. 避免使用 finalizer:避免使用finalizer来释放资源,使用try-finally语句来释放资源。 五、静态代码分析清单项分类 1. 使用静态代码分析器:使用静态代码分析器来检查代码的质量和安全性。 2. 查看报告:查看...

    java虚拟机垃圾回收详解.docx

    2. **Finalizable**:当GC发现一个对象不再可达(即没有其他对象引用它),这个对象会被放入一个名为Finalizer队列(F Queue)中,准备进行`finalize()`方法的执行。这是对象生命周期中的一个过渡阶段。 3. **...

    Java语言常用的方法名.doc

    - **定义**: 每个 Java 类都可以定义一个特殊的方法——finalizer,该方法由 JVM 在对象被垃圾回收之前调用。 - **特点**: - finalizer 方法不能被直接调用。 - finalizer 方法通常用于释放外部资源。 - **用途**:...

    tc音频后期插件

    在给定的压缩包中,可能包含了一系列TC Electronic的著名音频处理插件,如TC Helicon的语音处理插件或者TC Finalizer的母带处理插件。 1. **TX插件**:TX可能是"Texturing"或"Transforming"的缩写,这可能指的是...

    编写高效优雅Java程序Java系列2021.pdf

    - **终结方法(finalizer)的弊端**:不建议使用finalizer方法,因为它不受JDK的执行时间保证,应当使用try/finally语句来释放资源。 3. 设计原则: - **类和成员的可访问性最小化**:减少类和成员的可访问性,有助...

    Go 语言编程 + Go 学习笔记

    Go 语言编程 + Go 学习笔记, ...6. Finalizer 第三部分 附录 A. 具 1. 具集 2. 条件编译 3. 跨平台编译 4. 预处理 B. 调试 1. GDB 2. Data Race C. 测试 1. Test 2. Benchmark 3. Example 4. Cover 5. PProf

    findbugs报告问题含义

    22. **FI_NULLIFY_SUPER**:空 Finalizer 禁用了超类的 finalizer。如果需要,应调用 super.finalize()。 23. **MTIA_SUSPECT_STRUTS_INSTANCE_FIELD**:继承 Struts Action 类使用实例变量,可能导致多线程问题。...

    C#垃圾回收机制GC

    Finalizer(析构函数)是.NET中处理非托管资源的关键,它允许对象在被回收前执行必要的清理工作。 GC的注意事项包括: 1. 避免过度使用静态变量,因为它们会延长对象的生命周期。 2. 使用using语句处理非托管资源,...

    Android 5.0jni调用

    4. **Finalizer改进**:在之前的版本中,JNI对象的释放可能需要通过Java的Finalizer来完成,这是一个潜在的性能瓶颈。Android 5.0引入了更快、更可靠的释放机制,允许直接在JNI代码中释放本地资源。 5. **静态字段...

    C#语言基础常见问题汇总(2)

    `finalizer`是在对象被垃圾回收前自动调用的方法,但不应依赖它进行确定性的清理,因为它的调用时机不确定。 ### 5. 引用计数与垃圾回收 C#采用了垃圾回收机制,而非传统的引用计数。这意味着C#程序无需手动管理...

    s2 C#重点难点部分详解

    理解何时使用构造器和析构器,以及如何正确处理垃圾回收(通过finalizer)是C#开发中的重要知识点。 8. 静态类和静态成员:静态类不能被实例化,其成员属于类本身而非类的实例。理解静态类和静态成员的作用和使用...

    java_编程30条规则

    - **finalizer的使用**:谨慎使用finalizer,因为它的执行时间不确定。 #### (13) try-catch-finally结构 - **finally块**:即使发生异常也要执行的操作,如关闭资源。 - **try-with-resources**:利用try-with-...

Global site tag (gtag.js) - Google Analytics