时间:2021-05-19
1.final
final修饰类,说明这个类不能被继承,是以个顶级类。
final修饰变量,说明这个变量是常量。
final修饰方法,表示这个方法不能被重写,不过可以冲在final方法。
比如有个基类Person,里面有一个public final void eat()方法,可以在Person类中重载同名方法,比如public void eat(String name,int age)。假如有一个子类Student,那么在Student中可以override父类的非final方法,但是不能override final方法。
Person
复制代码 代码如下:
package test2;
public class Person {
private String name;
private int age;
public final void eat()
{
System.out.println("this is in person class");
}
public void eat(String name,int age)
{
}
}
Student
复制代码 代码如下:
package test2;
public class Student extends Person {
@Override
public void eat(String name, int age) {
// TODO Auto-generated method stub
super.eat(name, age);
}
}
常见的final方法就是Object类累中的wait()和notify()方法。
2.finally
finally是关键字,在异常处理中,try子句中执行需要运行的内容,catch子句用于捕获异常,finally子句表示不管是否发生异常,都会执行。finally可有可无。但是try...catch必须成对出现。
3.finalize()
finalize() 方法名,Object类的方法,Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象进行调用。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的子类覆盖 finalize() 方法以整理系统资源或者执行其他清理操作。
代码实例:
复制代码 代码如下:
class Person
{
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String toString()
{
return "姓名:"+this.name+",年龄:"+this.age;
}
public void finalize() throws Throwable{//对象释放空间是默认调用此方法
System.out.println("对象被释放-->"+this);//直接输出次对象,调用toString()方法
}
}
public class SystemDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person per=new Person("zhangsan",30);
per=null;//断开引用,释放空间
//方法1:
System.gc();//强制性释放空间
//方法2:
// Runtime run=Runtime.getRuntime();
// run.gc();
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java中finalize()详解在程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了。final是Java的关键字,它所表示
final:禁止多态开关~修饰变量:变量不能被改变修饰类:类不能被继承修饰方法:方法不能被重写finally:用在异常处理的最后一个语句块无论是否产生异常都要被
final类final类不能被继承,同时,一旦用final修饰了类,也就意味着final类中的所有方法都被隐式地指定为final方法final方法在类继承的过程
1:finalize()方法finallize()方法是Object类的方法,用于在类被GC回收时做一些处理操作,但是JVM并不能保证finalize(0)方法
1、final修饰类被final修饰的类不能被继承,因此final类的成员方法也不能被覆写,被final关键字修饰的类没有子类,因此类的实现细节也无法改变,无法