当前位置:网站首页>fianl、finally、finalize三者的区别
fianl、finally、finalize三者的区别
2022-07-06 09:20:00 【快醒醒鸭今天你编程了吗?】
首先这三者其实是没有本质关系的,面试的时候会考察我们对这块的理解:
fianl
fianl是用来修饰变量,修饰类,修饰类属性,当它修饰变量的时候,变量的引用不可变但是地址中的内容可以改变,当它修饰类的时候,这个类不可被继承但是可以被重载,当它修饰类属性的时候,子类就不能给这个属性重新赋值,如果赋值会报错。
finally
常用语try catch finally中,在异常处理时用finally执行任何清除操作,不管有没有异常抛出和捕获finally中的语句都会执行
如果try代码块里面有return语句,return语句还一一定要是最后执行的,java中有一条亘古不变的规则,程序是自上而下逐行执行,一旦执行了return整个方法结束。
咱们看一道题目:
package com.ws;
public class Demo02 {
public static void main(String[] args) {
int result = m();
System.out.println(result);
}
public static int m(){
int i = 100;
try{
return i;
}finally {
i++;
}
}
}
以上输出结果是什么?我猜大多数人肯定会说是101,但是答案是100
咱们来看看反编译之后的代码
//以下就是反编译之后的代码
public static int m(){
int i = 100;
int j = i;
i++;
return j;
Exception exception;
exception;
i++;
throw exception;
}
首先是把i的值给j,然后i++(就是执行fianlly里面的代码),然后返回j。
finalize
在垃圾回收中,如果被回收的对象重写了finalize()方法,并且在finalize()方法中重新建立了该对象与GC ROOT的连接,那么该对象是可以被复活一次的,也就是该对象会从收集阶段重新回到应用阶段。
以上就是这三者的区别!!!
边栏推荐
- 用栈实现队列
- Database operation of tyut Taiyuan University of technology 2022 database
- 2. Preliminary exercises of C language (2)
- 3.输入和输出函数(printf、scanf、getchar和putchar)
- The latest tank battle 2022 - full development notes-3
- 3.猜数字游戏
- Tyut Taiyuan University of technology 2022 introduction to software engineering examination question outline
- System design learning (III) design Amazon's sales rank by category feature
- First acquaintance with C language (Part 1)
- 4. Binary search
猜你喜欢
There is always one of the eight computer operations that you can't learn programming
Mortal immortal cultivation pointer-1
E-R graph to relational model of the 2022 database of tyut Taiyuan University of Technology
Design a key value cache to save the results of the most recent Web server queries
Cloud native trend in 2022
(super detailed II) detailed visualization of onenet data, how to plot with intercepted data flow
5. Function recursion exercise
String类
3. C language uses algebraic cofactor to calculate determinant
9.指针(上)
随机推荐
First acquaintance with C language (Part 2)
魏牌:产品叫好声一片,但为何销量还是受挫
(ultra detailed onenet TCP protocol access) arduino+esp8266-01s access to the Internet of things platform, upload real-time data collection /tcp transparent transmission (and how to obtain and write L
Solution: warning:tensorflow:gradients do not exist for variables ['deny_1/kernel:0', 'deny_1/bias:0',
Voir ui plus version 1.3.1 pour améliorer l'expérience Typescript
Tyut Taiyuan University of technology 2022 introduction to software engineering
6.函数的递归
最新坦克大战2022-全程开发笔记-1
4. Binary search
Tyut Taiyuan University of technology 2022 "Mao Gai" must be recited
MPLS experiment
【九阳神功】2017复旦大学应用统计真题+解析
西安电子科技大学22学年上学期《信号与系统》试题及答案
最新坦克大战2022-全程开发笔记-3
4.30动态内存分配笔记
Inheritance and polymorphism (I)
arduino+水位传感器+led显示+蜂鸣器报警
六种集合的遍历方式总结(List Set Map Queue Deque Stack)
Rich Shenzhen people and renting Shenzhen people
8.C语言——位操作符与位移操作符