final 类?最终类,不能有子类。
final 方法?方法不能被重写(override)
final 变量?常量,变量值不能被更改
public class Test{ PRivate final int a; private String name; public Test(){ a = 3; } pubilc Test(String name){ this.name = name; } }可否编译通过?无法编译通过,会提示a尚未初始化。要在所有的构造方法中对final变量进行赋值。
对于final类型的成员变量的初始化方式:
1,声明变量时直接赋值。
2,在构造方法中赋值。若有多个构造方法,要保证在每一个构造方法中完成对final变量初始化工作。
变量a即使final 又是static?
public class Test{ private static final int a; private String name; public Test(){ a = 3; } pubilc Test(String name){ this.name = name; } }则必须在声明的时候就赋值,否则会编译通不过。---------------------
pubilc class Test2{ public static final StringBuffer s = new StringBuffer(); public static void main(String[] arge){ s.append("hello"); } }可以编译通过对于final类型的引用变量来说,所谓的不能改变指的是该引用不能改变。
---------------
public class ExceptionTest{ public static void main(String[] args){ try{ String s = null; return ; }catch(Exception ex){ System.out.println("exception"); }finally{ System.out.println("finally"); } } }程序可以编译通过。异常执行流程:如果return有finally的话,会在return之前执行finally语句块内容。
只有一种情况不会去执行finally就是try中有System.exit(0); 则不会去执行finally。
新闻热点
疑难解答