首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

final finally finalize 其间的区别

2012-10-31 
final finally finalize 之间的区别/** * final finally finalize 之间的区别 * @author 够潮 * final 可

final finally finalize 之间的区别

 /** * final finally finalize 之间的区别 * @author 够潮 * final 可以修饰变量(静态变量,非静态变量),方法的参数,方法,类 * 被final修饰的静态变量不能再非静态代码块中初始化 * 被final修饰的非静态变量不能在静态代码块当中初始化 * 被final修饰的非静态变量可以在构造器当中初始化,但被final修饰的静态变量则不能在构造器当中初始化 * 被final修饰的方法的参数,不能被修改,否则编译错误 * 被final修饰的类不能被继承 * 被final修饰的方法不能被重写 * finally只能用在try/catch语句中,并且附带一个语句块,表示这段语句总是被执行 * finalize,该方法是属于Object类的,所以所有类都拥有该方法,在垃圾收集器(garbage collector)删除对象的时候,调用该方法 * */public class Demo1 {@Overrideprotected void finalize() throws Throwable {// TODO Auto-generated method stubSystem.out.println("执行了finalize()方法");}private final String str ="";private final static String str3;private final String str4;private final   String str5;//private final int a ;//被final修饰的变量在没有初始化的时候,则编译错误{str4="在非静态代码块中初始化";//str3="";//被final修饰的静态变量,不能再非静态代码块中初始化System.out.println("非静态代码块!");}static{str3 = "在静态代码块中初始化";//str = "";被final修饰的非静态变量,不能在静态代码块中初始化System.out.println("静态代码块");}public Demo1(){str5 = "";//str5 = "";//被final修饰的静态变量不能在构造器当中初始化,但是被final修饰的非静态变量则可以System.out.println("构造器");}public void say(){//final String str2;//被final修饰的变量,一定要初始化final String str2 = "gouchao";//str2 = "gouchao2";//被final修饰的变量,初始化过后,该变量不能被修改System.out.println(str2);}/** * final修饰方法的参数 * @param str */public  void sayHello( final String str){//str="";//被final修饰饿变量在进行第二次赋值的时候,则编译错误System.out.println(str);}/** * 被final修饰的方法 不能被重写 */public final void hello(){System.out.println("被final修饰的方法");}/** * @param args */public static void main(String[] args) {Demo1 demo = new Demo1();System.out.println("34");//System.gc();//在这个时候demo对象还有用,所以该对象不能被垃圾收集器回收demo.sayHello("够潮");demo = null;//System.gc();//等价于Runtime.getRuntime().gc();}}

热点排行