`
xitong
  • 浏览: 6401979 次
文章分类
社区版块
存档分类
最新评论

正确释放资源方法

 
阅读更多

1.只限于一个方法的资源


public static Properties loadProperties(String fileName)
throws IOException {
FileInputStream stream = new FileInputStream(fileName);
try {
Properties props = new Properties();
props.load(stream);
return props;
}
finally {
stream.close();
}
}

2.可靠的释放多个资源的方法

public void enumerateBar() throws SQLException {
Statement statement = null;
ResultSet resultSet = null;
Connection connection = getConnection();
try {
statement = connection.createStatement();
resultSet = statement.executeQuery("SELECT * FROM Bar");
// Use resultSet
}
finally {
try {
if (resultSet != null)
resultSet.close();
}
finally {
try {
if (statement != null)
statement.close();
}
finally {
connection.close();
}
}
}
}

private Connection getConnection() {
return null;
}

3.绑定连接的脆弱实现关闭


public class BoundedSet<T> {
private final Set<T> set = ...
private final Semaphore sem;

public BoundedHashSet(int bound) {
sem = new Semaphore(bound);
}

public boolean add(T o) throws InterruptedException {
sem.acquire();
boolean wasAdded = false;
try {
wasAdded = set.add(o);
return wasAdded;
}
finally {
if (!wasAdded)
sem.release();
}
}
}

参考ibm文章
http://www-128.ibm.com/developerworks/cn/java/j-jtp03216.html?ca=dwcn-newsletter-java

分享到:
评论

相关推荐

    VB释放资源源码

    在编程领域,尤其是在Visual Basic (VB)环境中,正确地释放资源是至关重要的。这不仅可以确保程序的高效运行,还能防止内存泄漏,进而提高整体系统稳定性。"VB释放资源源码"指的是利用VB语言编写的代码,用于管理和...

    资源文件的建立和释放

    3. **错误处理**: 在释放资源时,应处理可能出现的异常,确保即使在异常情况下也能正确地释放资源。 4. **性能优化**: 适当利用缓存和复用策略,减少频繁的资源加载和释放操作,提高程序运行效率。 综上所述,资源...

    swt资源释放问题

    如果不正确地释放资源,可能会导致内存泄露、程序崩溃等问题。下面,我们将详细介绍 SWT 中的资源释放问题。 一、Display 实例的创建和释放 在 SWT 中,Display 实例是所有 Shell 的最高父资源。创建 Display 实例...

    Java通过try释放资源的方法

    Java中的try-with-resources语句是JDK 7引入的一个重要特性,它旨在简化资源管理,尤其是那些需要手动关闭的I/O资源,如文件输入/输出流。...通过实践和应用,你将能够更好地管理和释放资源,提升代码的可靠性和性能。

    fxgb释放资源.txt

    在.NET开发中,“释放资源”通常指的是清理非托管资源(如文件句柄、数据库连接或窗口句柄等),这些资源如果管理不当,可能会导致内存泄漏或系统性能下降等问题。 ### 文件描述: ```csharp public class Test : ...

    电脑串口号被占用释放方法(附图详细教程)

    5. 修改端口号释放资源: - 如果用户需要修改端口号,进行修改后,系统会自动释放之前标记为“使用中”的串口资源。 6. 注意事项: - 在进行注册表编辑时,需要小心谨慎,错误的修改可能会导致系统不稳定或其他...

    C#资源释放方法实例分析

    在C#编程中,资源管理是一项关键任务,尤其是在处理非托管资源时,如数据库连接、文件句柄或网络套接字。这些资源如果不正确地释放,...在处理非托管资源时,应始终遵循最佳实践,确保在所有情况下都能正确释放资源。

    vc 资源分配释放表

    - 关闭:`CloseComm()` - 通信端口需要正确关闭以释放资源 9. **定时器(Timers)** - 设置:`SetTimer()` - 取消:`KillTimer()` - 定时器不再需要时,使用`KillTimer()`取消 10. **GDI对象(如笔、颜色、系统...

    c#中的非托管资源释放 (Finalize和Dispose)

    - 如果实现了`Finalize`方法,则应该在`Dispose`方法中调用`GC.SuppressFinalize(this)`来抑制`Finalize`方法的执行,以避免重复释放资源。 - `Dispose`方法应该能够释放所有非托管资源。 - 当`Dispose`方法完成...

    Handler对象中使用匿名内部类或非静态内部类正确地释放消息避免内存泄漏或增加Native内存

    内存泄漏是指程序中已分配的内存没有被正确释放,导致这部分内存无法被再次使用。在Android中,如果一个对象被非静态内部类引用,而这个内部类又被一个长时间存在的对象(如Activity)持有,即使Activity已经不再...

    一次性释放多个资源文件

    `ResourceManager`提供了加载、获取和释放资源的方法。例如,以下代码展示了如何加载一个资源文件并获取其中的字符串资源: ```vbnet Dim rm As New ResourceManager("YourNamespace.YourResourceFileName", ...

    VC资源文件释放

    5. **释放资源**:使用`FreeResource()`函数释放不再使用的资源。 以下是一个简单的示例函数`GetDataFromRes()`,用于从资源文件中读取数据: ```c++ LONG GetDataFromRes(PBYTE pData, UINT nIDResource) { // ...

    java 真正的安全的资源的释放

    #### 安全释放资源的最佳实践 为了确保数据库资源能够被安全释放,推荐使用以下最佳实践: 1. **使用try-finally结构**:通过在try块中执行数据库操作,并在finally块中关闭资源,可以确保即使发生异常,资源也能...

    行业文档-设计装置-在SIP切换时释放分配资源的方法.zip

    标题中的“行业文档-设计装置-在SIP切换时释放分配资源的方法”表明这是一个关于通信技术,特别是SIP(Session Initiation Protocol)协议在切换过程中如何有效地管理与释放资源的技术文档。SIP是一种用于控制多媒体...

    关于内存资源无法释放的例子

    当一个程序运行时,它会占用内存来存储数据和代码,而内存资源的有效管理和释放至关重要,因为这直接影响到程序的性能、稳定性和系统资源的利用率。在本案例中,“关于内存资源无法释放的例子”揭示了一个常见问题:...

    资源文件释放_资源文件释放_

    - **Finalize方法与析构函数**:在.NET中,析构函数(~YourClass())用于清理非托管资源,但这不应该是常规资源释放的首选方法,因为它的执行时间不确定,且GC可能会跳过它。只有在必须确保非托管资源被释放,且不能...

    Tomcat的内存释放

    当通过JDBC访问数据库时,如果没有正确关闭ResultSet (`rs`) 和Statement等资源,就会导致这些资源无法被垃圾回收器回收,从而逐渐积累,最终造成内存溢出。 2. **循环套接层数过多或存在死循环**: - 如果代码中...

    javascript 数组内存释放

    总之,JavaScript中的数组内存释放依赖于垃圾回收机制,正确地解除引用、避免循环引用、使用弱引用以及及时清理定时器和事件监听器,都是有效管理数组内存的方法。理解这些概念并应用到实践中,有助于编写出更高效、...

    .NET+AE开发中常见几种非托管对象的释放

    3. **确保程序稳定性**:未正确释放的资源可能会导致程序崩溃或异常终止。 #### 三、非托管资源释放方法 ### 1. 使用`Marshal.ReleaseComObject` 对于COM对象,最常用的释放方法是通过`System.Runtime....

    CLOSE_WAIT网络连接无法释放问题解决

    在服务器端,需要在适当的时候调用close()方法,以释放连接资源。在这个例子中,服务器端没有正确关闭连接,导致了CLOSE_WAIT状态的出现。 使用netstat -na命令可以查看当前的TCP连接状态,包括LISTEN、ESTABLISHED...

Global site tag (gtag.js) - Google Analytics