我是靠谱客的博主 留胡子母鸡,最近开发中收集的这篇文章主要介绍【Java 面试合集】final 以及finally 不同final 以及finally 不同,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
final 以及finally 不同
1. 概述
嗨,大家好
【Java 面试合集】
又来了。今天给大家分享的主题是final 以及finally 不同
.
很简单,但是确实很细节哦,好了废话不多说,让我们开始吧
2. final
首先我们要知道
final
是一个修饰符,可以修饰属性,方法,类等
2.1 修饰成员属性
- 修饰基本数据类型后,不能再次修改
- 修饰引用数据类型后,不能修引用。但是可以修改对象内容
基本数据类型
public class Test001 {
final int age = 10;
age = 20; // 不能进行修改
}
一旦使用final 修饰基本数据类型后,不能再次修改。
引用数据类型
public class Test001 {
final Person p = new Person();
public void test002() {
p = new Person(); // 报错。
p.name = "20"; // 但是可以这样赋值
}
}
2.2 修饰类
使用修饰符
final
修饰类后,类不能被继承。
final class Parent001 {
}
public class Test002 extends Parent001 {
}
2.3 修饰方法
使用修饰符
final
修饰方法后,方法不能被重写
class Parent001 {
public final void test001() {
}
}
public class Test002 extends Parent001 {
public void test001() {
}
}
2.4 修饰参数列表
修饰的参数列表,跟修饰成员属性保持一致的
public class Test003 {
public static void main(String[] args) {
test001(1, 2);
}
public static void test001(final int a, int b) {
a = 2; // 不能重新赋值
b = 3;
}
}
2.5 常用方式
一般跟static 结合使用。用来给全系统提供常用。
public final class Math {
public static final double PI = 3.14159265358979323846;
}
3. finally
- 其实是
try catch finally
关键字。其大概的含义是:无论是否异常,都会执行finallyfinally
代码块 会在try
代码块的return之前执行。- 如果finally代码块进行返回了,try 代码块中就无法返回了
实例1
public class Test004 {
public static void main(String[] args) {
System.out.println(test001());
}
public static String test001() {
try {
System.out.println("test001-1");
return "test001-1-r";
} finally {
System.out.println("test001-2");
return "test001-2-r";
}
}
}
上述代码的打印结果如下:
# test001-1
# test001-2
# test001-2-r
通过上述示例,如果finally代码块返回值后,try 代码块就不会返回了
实例2
public class Test004 {
public static void main(String[] args) {
System.out.println(test001());
}
public static String test001() {
try {
System.out.println("test001-1");
return "test001-1-r";
} finally {
System.out.println("test001-2");
}
}
}
上述代码打印结果如下:
// test001-1
// test001-2
// test001-1-r
上述示例代码说明:如果try代码块正常的话,finally 代码块是在return 之前执行的。
4. 总结
其实
final
以及finally
除了书写相似外,毛关系没有
。
最后
以上就是留胡子母鸡为你收集整理的【Java 面试合集】final 以及finally 不同final 以及finally 不同的全部内容,希望文章能够帮你解决【Java 面试合集】final 以及finally 不同final 以及finally 不同所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复