import java.io.*;class DbConnection
{
void open()
{
System.out.println("DB opened!!");
}
void close(DbConnection dc)
{
dc=null;
System.out.println("DB closed!!");
}}public class ExceptionTest
{
public static void main(String arg[])
{
DbConnection dbConnection=new DbConnection();
try{ dbConnection.open(); dbConnection.close(dbConnection);//第一个close
}
catch(Exception e){
System.out.println("Exception Catched!!");
}
finally{
dbConnection.close(dbConnection);
}
}
}当第一个close方法使用的时候dbConnection为什么还不是null?DbConnection类内的close方法不是把传进来dbConnection赋值为null了么?
{
void open()
{
System.out.println("DB opened!!");
}
void close(DbConnection dc)
{
dc=null;
System.out.println("DB closed!!");
}}public class ExceptionTest
{
public static void main(String arg[])
{
DbConnection dbConnection=new DbConnection();
try{ dbConnection.open(); dbConnection.close(dbConnection);//第一个close
}
catch(Exception e){
System.out.println("Exception Catched!!");
}
finally{
dbConnection.close(dbConnection);
}
}
}当第一个close方法使用的时候dbConnection为什么还不是null?DbConnection类内的close方法不是把传进来dbConnection赋值为null了么?
{
//dc是指向DbConnection的一个实例的变量。DbConnection的那个实例不依赖dc的存在而存在。
dc=null;//dc这个变量指向了null,而原来的DbConnection的那个实例仍然存在。
System.out.println("DB closed!!");
}