面试的时候经常被问到这个问题,在网上查了一下资料,自己记录一下
final
final修饰的类,不可继承
finally
try/catch/finally中的用法
public class test {
public static void main(String[] args) {
test t = new test();
System.out.println("--测试return语句--");
t.testReturn();
System.out.println("--测试continue语句--");
t.testContinue();
System.out.println("--测试break语句--");
t.testBreak();
}
public ReturnClass testReturn() {
try {
return new ReturnClass();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println(" 执行了finally语句");
}
return null;
}
public void testContinue() {
for (int i = 0; i < 3; i++) {
try {
System.out.println(i);
if (i == 1) {
continue;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println(" 执行了finally语句");
}
}
}
public void testBreak() {
for (int i = 0; i < 3; i++) {
try {
System.out.println(i);
if (i == 1) {
break;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println(" 执行了finally语句");
}
}
}
class ReturnClass {
public ReturnClass() {
System.out.println(" 执行了return语句");
}
}
}
--测试return语句--
执行了return语句
执行了finally语句
--测试continue语句--
0
执行了finally语句
1
执行了finally语句
2
执行了finally语句
--测试break语句--
0
执行了finally语句
1
执行了finally语句
每次从try/catch中跳出都要运行finally的方法
在continue,break,return之前执行finally方法
finalize
Object类的一个方法,系统GC的时候调用