final:如果一个变量或方法参数被final修饰,就表示它只能被赋值一次,但是JAVA虚拟机为变量设定的默认值不记作一次赋值。
final的用途
1、可用来定义变量,包括静态变量和非静态变量。
2、可用来定义方法传入的参数。
3、可用来定义类。
4、可用来定义方法。
修饰变量:修饰基本类型,赋予它的值是不可变的,即是常量;修饰的是一个对象,这个对象的引用是不可变的,但是对象本身还是可以变得。修饰变量必须得初始化。
初始化可在:
1、自定义时初始化(所有变量)。
2、初始化块中初始化(非静态变量)。
3、静态初始化块中初始化(静态变量)。
4、构造函数中初始化(静态与非静态变量)。
final修饰的变量更有效率,应该尽可能多将普通变量替换为final变量。
修饰方法:final修饰的方法可以被继承但不可以被重写。
修饰类:final修饰的类是不可以被继承的。例如String类就是final的,表示不可变的。final类不可被继承,final的所有方法都默认为final。
finally:finally只能跟在try/catch语句中,并且附带一个语句块,表示最后执行。但是也会有不一定的时候,当try/catch中有return、break、continue就会改变这种状况。编译器会先执行finally语句块,再执行return,break,continue。如:
public final class FinallyTest {
// 测试return语句
public ReturnClass testReturn() {
try {
return new ReturnClass();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("执行了finally语句");
}
return null;
}
// 测试continue语句
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语句");
}
}
}
// 测试break语句
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语句");
}
}
}
public static void main(String[] args) {
FinallyTest ft = new FinallyTest();
// 测试return语句
ft.testReturn();
System.out.println();
// 测试continue语句
ft.testContinue();
System.out.println();
// 测试break语句
ft.testBreak();
}
}
class ReturnClass {
public ReturnClass() {
System.out.println("执行了return语句");
}
}
finalize:finalize是gc操作的运行机制中得一部分,进行gc操作时会调用finalize方法,而且finalize方法是object的方法,所有每个类都有这个方法并且可以重写这个方法,在这个方法里实现释放系统资源及其他清理工作,如实现流的关闭,。
分享到:
相关推荐
final, finally, finalize的区别
一,谈谈final, finally, finalize的区别。 java面试题
Java中final,finally,finalize三个关键字的区别_动力节点Java学院整理
final:修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为 父类被继承。因此一个类不能既被声明为abstract 的,又被声明为final 的。将变量或 方法声明为 final,可以保证它们在...
主要介绍了详解Java编程中final,finalize,finally的区别,这个在Java面试题中简直是太常见了...需要的朋友可以参考下
主要介绍了java 基础之final、finally和finalize的区别的相关资料,需要的朋友可以参考下
对于Java中final、finally、finalize的有关问题做下的思维导图,便于深化记忆,希望对你有帮助!注意:文件为.mm后缀建议下载freemind打开,免费的思维导图软件!
Java中final、finally、finalize的区别与用法,困扰了不少学习者,下面我们就这个问题进行一些探讨,希望对大家的学习有所帮助。
final 是 Java 中的关键字,它也是 Java 中很重要的一个关键字,final 修饰的类、方法、变量有不同的含义;finally 也是一个关键字,不过我们可以使用 finally 和其他关键字结合做一些组合操作; finalize 是一个不...
hi 大家好,今日,天气剧变,非常冷,不想出门,于是给大家写了篇文章,关于android final关键字及final,finally,finalize的区别相关知识,具体详情如下所示: 先预告一下,下文中仅涉及java语法的讨论,和Android...
1. 注意,final 不是 immutable 2.finalize 真的那么不堪 3. 有什么机制可以替换 finalize 吗
以下是对final,finally,finalize的区别进行了详细的分析介绍,需要的朋友可以过来参考下
List 和 Set 的区别,final finally finalize,Java获取反射的三种方法,Arrays.sort 和 Collections.sort 实现原理 和区别
很好的Java面试题第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
1. 注意,final 不是 immutable 2.finalize 真的那么不堪 3. 有什么机制可以替换 finalize 吗
Java 中的 final、finally 和 finalize 关键字有什么区别? final:当用“final”关键字声明一个变量时,它的值一旦被赋值就不能改变。当使用“final”关键字声明方法时,它不能在子类中被覆盖。当用“final”...
《计算机基础》期末复习参考题(夜大)仅供参考
一,谈谈final, finally, finalize的区别。 Final --修饰符(关键字)。如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。...