final,finally和finalize的区别
* * A:面试题1
* final,finally和finalize的区别
* final可以修饰类,不能被继承
* 修饰方法,不能被重写
* 修饰变量,只能赋值一次
*
* finally是try语句中的一个语句体,不能单独使用,用来释放资源
*
* finalize是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
* B:面试题2
* 如果catch里面有return语句,请问finally的代码还会执行吗?如果会,请问是在return前还是return后。
*/
public static void main(String[] args) {
Demo d = new Demo();
System.out.println(d.method());
}
public int method() {
int x = 10;
try {
x = 20;
System.out.println(1/0);
return x;
} catch (Exception e) {
x = 30;
return x;
} finally {
x = 40;
//return x; 千万不要在finally里面写返回语句,因为finally的作用是为了释放资源,是肯定会执行的
//如果在这里面写返回语句,那么try和catch的结果都会被改变,所以这么写就是犯罪
}
}
}
final,finally和finalize的区别的更多相关文章
- 异常-面试题之final,finally和finalize的区别,如果在finally之前有return
package cn.itcast_07; /* * 面试题: * 1:final,finally和finalize的区别 * final:最终的意思,可以修饰类,成员变量,成员方法 * 修饰类,类不 ...
- final, finally 和finalize的区别
final 修饰符(关键字) 如果一个类被声明为final,意味着它不能再派生新的子类,不能作为父类被继承.因此一个类不能及被声明为abstract,又被声明为final的.将变量或方法声明为fina ...
- java中final,finally和finalize的区别
final,finally和finalize的区别: final:最终的意思,可以修饰类,成员变量,成员方法 修饰类,类不能被继承 修饰变量,变量是常量 修饰方法,方法不能被重写 finally:是异 ...
- final、finally和finalize的区别
final.finally和finalize的区别 这三者的区别可以从两个方面来说 1.意思解释方面 (1)final是修饰符(关键字) (2)finally是异常处理中的程序块 (3)finaliz ...
- 【Java面试题】19 final,finally和finalize的区别
总体区别 final 用于申明属性,方法和类,表示属性不可变,方法不可以被覆盖,类不可以被继承.finally 是异常处理语句结构中,表示总是执行的部分. finallize ...
- Java基础知识总结--final、finally、finalize的区别
谈谈final.finally.finalize的区别 1.final修饰符:如果一个类被声明为final,意味着这个类不能再被派生出新的子类,不能作为父类被别的类继承.因此,一个类不能即被声明为ab ...
- Android源码中final关键字的用法及final,finally,finalize的区别
Android开发的学习流程 final,finally,finalize的区别 Android的发展越来越快,Android开发人员越来越多,当两种情况碰撞,在诸多开发者中跟紧Android步伐脱颖 ...
- 【Java面试题系列】:Java中final finally finalize的区别
本篇为[Java面试题系列]第三篇,文中如有错误,欢迎指正. 第一篇链接:[Java面试题系列]:Java基础知识常见面试题汇总 第一篇 第二篇链接:[Java面试题系列]:Java基础知识常见面试题 ...
- Java中final,finally和finalize区别
Day11_SHJavaTraing_4-18-2017 Java中final,finally和finalize区别 1.final—修饰符(关键字) ①final修饰类,表示该类不可被继承 ②fin ...
随机推荐
- 0x01 向日葵日志溯源
1.简介 向日葵工具具有linux桌面系统版本,在应急场景中,攻击者通过向日葵远控linux实现入侵是一种常见手法,通过分析向日葵的服务日志,可以分析出安全事件时间发生点前后有无向日葵远控的行为,但由 ...
- Netty学习(二)使用及执行流程
Netty简单使用 1.本文先介绍一下 server 的 demo 2.(重点是这个)根据代码跟踪一下 Netty 的一些执行流程 和 事件传递的 pipeline. 首先到官网看一下Netty Se ...
- Spring-MyBatis的配置文件
<?xml version="1.0" encoding="UTF8"?> <beans xmlns="http://www.spr ...
- HIve的基本使用
WHERE从表中筛选行: SELECT从表中查询指定的列: group by在列上做聚合. -- 假设数据文件的内容,字段之间以ASCII 001(ctrl-A)分隔,行之间以换行分隔. CREATE ...
- 了解Redis持久化
Redis是一个键值对数据库服务器,由于Redis是内存数据库,那么有很多内存的特点,例如掉电易失,或者进程退出,服务器中的数据也将消失不见,所以需要一种方法将数据从内存中写到磁盘,这一过程称之为数据 ...
- 昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!
摘要:近日,CVPR 2022放榜,基于CANN的AI论文<Interactive Image Synthesis with Panoptic Layout Generation>强势上榜 ...
- SQL注入及防止SQL注入
•SQL注入 SQL注入是通过操作输入来修改事先定义好的SQL语句,对用户输入的字符串进行过滤,转义,限制或处理不严谨,导致用户可以通过输入精心构造的字符串去非法获取到数据库中的数据,以达到执行代码对 ...
- Java基础——Arrays类
概述: Arrays类包含用于操作数组的各种方法,常用的有以下几种 方法名 说明 public static String toString(int[]a) 返回指定数组的内容的字符串表达形式 pub ...
- SpringBoot——两种传参方式
?传参 举例:http://localhost:8082/news/asset/getDatas?page=1&keyWord=123&year=2020 注解:@RequestPar ...
- Django项目常用的logging配置。
做开发开不开日志,以下是我在工作中写Django项目常用的logging配置. LOGGING = { 'version': 1, 'disable_existing_loggers': False, ...