您的位置:首页 > 其它

final,finally和finalize总结

2010-11-09 11:41 169 查看
在某笔试题中看到,昨天复习了下JAVA后整理一下.

final可以添加的位置有三个:class之前,变量前,成员方法前.

最常见的是在变量前如:

final int length=10;


用于申请常量,和C++中的const用法相同.

类所属常量也常用final和static一起定义.如:

public class A
{
public static final int a=1;
public static final int b=2;
public static final int c=3;
}


在class前,如:

public final class A
{
}


表示该类不能被继承.

在类的成员方法前,如:

public class A
{
private int number;
public final int getNumber()
{
return number;
}
}


表示该成员方法不允许在继承的时候被子类重写.

finally用于异常处理中,如:

try
{
}
catch(Exception e)
{
}
finally
{
}


finally中的语句无论异常处理的过程如何(是否跳出try,执行catch),都会被执行.

finalize是类的一个默认方法,和类的回收机制有关,在CG回收类前,会将类从finalizable变为finalized并执行finalize()方法.可以由程序员添加finalize方法,但因为CG调用无法掌控以及会产生对象重生等问题,一般不会这么做.如:

public class A
{
public void finalize()
{
System.out.println("A finalized");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: