java 基础之final、finally和finalize的区别
作者:lqh 发布时间:2023-08-01 04:44:49
标签:final,finally,finalize
java 基础之final、finally和finalize的区别
1.final可以修饰类,不能被继承;可以修饰方法,不能被重写;可以修饰变量,只能赋值一次。
2.finally是try语句中的语句体,不能单独使用,用来释放资源;
3.finalize是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
如下代码程序:
package cn.jit.test;
/**
* 面试题1:final,finally和finalize的区别:
*
* final可以修饰类,不能被继承;
* 可以修饰方法,不能被重写
* 可以修饰变量,只能赋值一次。
* finally是try语句中的语句体,不能单独使用,用来释放资源;
* finalize是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象
* 的垃圾回收器调用此方法。
*
*
* 面试题2:如果catch里面有return语句,请问finally的代码还会被执行吗?
* 如果会,请问是在return前还是在return后?
* 会。在return前。
*
* @author Rocky
*
*/
public class FinallyDemo8 {
public static void main(String[] args) {
Demo d = new Demo();
System.out.println(d.method());
}
}
class Demo {
public int method() {
int x = 10;
try {
x = 20;
System.out.println(1/0);
return x;
} catch (Exception e) {
x = 30;
return x;
} finally {
/*
* finally中不应当有return语句
* 否则该方法一定会返回这里的内容
*/
x = 40;
return 40;
//千万不要在finally里面写返回语句,因为finally的作用是
//释放资源,是肯定会执行的,如果在这里面写返回语句,那么try和cache
//的结果都会被改变,所以这么写就是犯罪!!!
}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/qian_ch/article/details/54972063


猜你喜欢
- 一、select是什么select——>用于选择更快的结果。基于场景理解比如客户端要查询一个商
- 这篇文章主要介绍了Spring AOP AspectJ使用及配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 使用对象初始值设定项初始化对象可以使用对象初始值设定项以声明方式初始化类型对象,而无需显式调用类型的构造函数。下面的示例演示如何将对象初始值
- 从相册或拍照更换图片功能的实现:(取图无裁剪功能)获取图片方式: (类似更换头像的效果)1、手机拍照 选择图片;2、相册选取图片;本文只是简
- 类似普通对象,通过new创建字符串对象。String str = new String("Hello"); 内存图如下图
- 本篇介绍基于SSM框架(Spring4.0+SpringMVC+Mybatis)组合的Javamail应用,邮箱的话基于腾讯的QQ邮箱,其实
- 前言Promoted Actions是指一种操作按钮,它不是放在actionbar中,而是直接在可见的UI布局中(当然这里的UI指的是set
- 0 实验环境在Android Studio中进行有关代码的编写和界面效果展示。SQLite数据库的图形化工具SQLiteStudio下载网址
- 初识LinkedHashMap大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap,不过HashMap有一个问题,就是迭
- 文章开始之前,先看一下效果图,看是不是您正所需要的:一、构建计算器的界面要构建出一个好看点的计算器界面,还是需要颇费些小心思的,我做这个的时
- 一、编码规则Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组
- 本文实例讲述了Java线程组与未处理异常。分享给大家供大家参考,具体如下:一 点睛从JDK1.5开始,Java加强了线程的异常处理,如果线程
- 同类型对象的比较三个维度去比较同一性相等性相似性样例引入想象一下这样的一个场景:小王去图书馆借了一本java核心技术卷1,如图不幸的是小王把
- 前言Basic编码是标准的BASE64编码,用于处理常规的需求:输出的内容不添加换行符,而且输出的内容由字母加数字组成。最近做了个Web模版
- 仿水波纹流球进度条控制器,Android实现高端大气的主流特效,供大家参考,具体内容如下效果图:CircleView这里主要是实现中心圆以及
- Android四种数据存储的应用方式作为一个完整的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分
- 1、pom.xml配置修改<packaging>jar</packaging>//修改为<packaging&
- 在 Java 中,LinkedList 和 ArrayList 的性能是不同的,具体取决于你所需要的操作。对于频繁的插入和删除操作,Link
- SpringBoot如何快速配置数据源;有如下两种方式:通过spring-boot-starter-jdbc快速配置数据源自定义数据源Dat
- 基本操作import org.apache.hadoop.conf.Configuration;import org.apache.hado