正确释放资源方法

转载 2006年05月17日 10:16:00

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

 

JDBC学习笔记 -- day03 正确释放资源的方法

1.正确释放资源,需要加入异常处理机制 示例代码如下: package com.jdcb.test; import java.sql.Connection; import java.sql.Driv...

JAVA Runtime.addShutdownHook()方法{拿到线程句柄,在程序关闭之前调用释放资源}

Runtime#addShutDownHook方法是给虚拟机增加一个虚拟机关闭时的调用钩子,在虚拟机关闭的时候调用这些钩子线程。还是非常有用的一个方法,最直接的用法就是监控了,因为其是在虚拟机临关闭时...

关于HibernateDaoSupport getSession()不能释放资源的问题及解决方法

关于HibernateDaoSupport getSession()不能释放资源的问题及解决方法   1、使用手动释放资源: Session session = getSession(); /...

关于DI容器UnityContainer的Dispose方法释放资源的一点理解

当调用IUnityContainer.Dispose()方法的时候,它会释放所有子容器(也就是采用CreateChildContainer创建出来的容器)和注册为ContainerControlled...

EXE释放资源原理

  • 2013年05月13日 08:32
  • 828KB
  • 下载

fxgb释放资源.txt

  • 2011年05月31日 02:26
  • 481B
  • 下载

JDBC ConnectionManager类,从连接池获取Connection,释放资源等功能

package com.bjpowernode.drp.util; import java.sql.Connection; import java.sql.ResultSet; import...

VC 释放资源 源码 下载

  • 2011年07月26日 13:20
  • 35KB
  • 下载

VB释放资源源码

  • 2011年03月03日 23:04
  • 1KB
  • 下载

如何完全杀掉带锁的进程并释放资源

Oracle数据库管理人员经常会遇到这样的问题:状态已被置为"killed"的进程长时间锁定系统资源不释放。通常的做法是重启数据库,但这样就以为着数据库服务的中断。这里介绍另外一种好用方便的方法: 在...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:正确释放资源方法
举报原因:
原因补充:

(最多只允许输入30个字)