final,finally和finalize总结

在某笔试题中看到,昨天复习了下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");
}
}

 

posted @ 2010-11-09 11:41  魔芋红茶  阅读(487)  评论(0编辑  收藏  举报