由于某些链接或对象,系统中的各个用户可以共享使用,并不需要销毁操作。因此可以将这些链接或对象保留到一个池中,这样可以节省系统资源的开销。
1、要有一个链表用来储存
2、在类的静态加载中声明构造
3、每一次使用,是对池中对象的释放
4、每一次用完,是对池中对象的追加
5、我认为,用双向链表和单向链表都可以(栈和队列)
----------------------------------------------------------------------------------------*************我是华丽的分割线*************----------------------------------------------------------------------------------------
Java代码实例(数据库连接池):
实现:
package gaideng.util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.Properties;
public class DBConnUtil {
//连接池
private static LinkedList<Connection> SQLlink=new LinkedList <Connection>();
static
{
String ClassName="";
String url="";
String users="";
String pwd="";
int LinkSize=0;
InputStream in=DBConnUtil.class.getClassLoader().getResourceAsStream("dbinfo.properties");
Properties pro=new Properties();
try {
pro.load(in);
ClassName =pro.getProperty("ClassName");
url =pro.getProperty("url");
users =pro.getProperty("users");
pwd =pro.getProperty("pwd");
LinkSize=Integer.parseInt(pro.getProperty("LinkSize"));
for(int i=0;i<LinkSize;i++)
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection(url, users, pwd);
SQLlink.add(conn);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
参照:http://blog.youkuaiyun.com/shuaihj/article/details/14223015