• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > java 基础之final、finally和finalize的区别

java 基础之final、finally和finalize的区别

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了finally finalize,final finalize,java final finally,final finally,java finalize等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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 
      //的结果都会被改变,所以这么写就是犯罪!!! 
    } 
     
  } 
} 
</div>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • java 基础之final、finally和finalize的区别
  • java 基础之final、finally和finalize的区别

相关文章

  • 2017-05-28SpringMVC实现自定义类型转换器
  • 2017-05-28通过一个map替换字符串中指定的字符变量方法
  • 2017-05-28File的API和常用方法详解_动力节点Java学院整理
  • 2017-05-28java实现短信通信的完整教程
  • 2017-05-28Spring3 整合MyBatis3 配置多数据源动态选择SqlSessionFactory详细教程
  • 2017-05-28Spring Boot实现动态更新任务的方法
  • 2017-05-28通过一个命令轻松切换Java的版本
  • 2017-05-28详解spring security 配置多个AuthenticationProvider
  • 2017-07-22JavaThreadPoolExecutor线程池调度器
  • 2017-05-28Eclipse智能提示及快捷键

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • java多线程的同步方法实例代码
    • spring boot日志管理配置
    • Java微信公众平台开发(1) 接入微信公众平台
    • SSM框架中mybatis接口测试工具类
    • Java生成动态版验证码的方法实例
    • 详解springboot+mybatis多数据源最简解决方案
    • 详解Java中字符流与字节流的区别
    • Java使用join方法暂停当前线程
    • Java 可视化垃圾回收_动力节点Java学院整理
    • 数据库基本操作语法归纳总结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有