java的析构函数是什么?(10分)

  • 主题发起人 主题发起人 WTO_LOVER
  • 开始时间 开始时间
W

WTO_LOVER

Unregistered / Unconfirmed
GUEST, unregistred user!
sorry!今天DFW的检索有问题;
我的JSP调用一个Bean,数据库打开连接后,他不关闭了,(JB环境),有何方法能让我结束
JSP页面是,关闭数据库,BEAN的SCOP 为SESSION ,
 
还是自己写代码关闭吧!
 
ResultSet.close();
就可以关闭的啊!
java 没有析构函数.
 
java没有析构,他有gc机制,会自动管理对像的
 
首先,JAVA语言只有构造函数,通常是同类名称相同的一个函数,它的作用是初始化成员变量的值;JAVA语言没有析构函数,它有一个垃圾收机器,会定时处理不用的对象。
其次,给你一个数据库连接BEANS的源代码,供学习:
package Beans.DataBase.Connection;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author 孙玉良
* @version 1.0
*/
import java.io.*;
import javax.servlet.http.*;
import java.sql.*;
public class BeanDbCon {
private Connection cn=null;
//设连接变量为私有变量
public BeanDbCon() {
BuildConnection();
}
private void BuildConnection(){ //建立数据连接的私有函数
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn=DriverManager.getConnection("jdbc:odbc:bookstore","sa","goodat");
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
public Connection getConnection(){
if(cn==null){
BuildConnection();
}
return this.cn;
}
public void close(){
try{
cn.close();
cn=null;
}
catch(SQLException se)
{
System.out.println(se.toString());
}
}
public void valueBound(HttpSessionBindingEvent event){}
public void valueUnBound(HttpSessionBindingEvent event){
if(cn!=null)
close();
}
public static void main(String[] args) {
BeanDbCon beanDbCon1 = new BeanDbCon();
}
}
 
java没有析构函数
 
////////////////////////
有虚拟机 自动析构 管他干什么///////
[:)]
////////////////////
 
你将dataset.close后应该对象就会被回收吧,但是如果你的dataset是不是这个对象的那么我就不知道了,没有深入研究java的回收机制
 
使用jdbc连接数据库的话,一般需要关闭的包括ResultSet,Statement,Connection三个对象(按顺序关),这个才操作中一定要注意,特别是Connection的关闭最好是放在finally里保证一定关闭,否则很容易造成数据库连接无法断开的
 
后退
顶部