• 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-28详解hibernate双向多对多关联映射XML与注解版
  • 2017-05-28详解 Java Maximum redirects (100) exceeded
  • 2017-05-28详解Spring boot+CXF开发WebService Demo
  • 2017-05-28Java去掉数字字符串开头的0三种方法(推荐)
  • 2017-05-28详解Spring boot+CXF开发WebService Demo
  • 2017-05-28Java8 新特性Lambda表达式实例详解
  • 2017-05-28关于多线程常用方法以及对锁的控制(详解)
  • 2017-05-28Java实现一个简单的缓存方法
  • 2017-05-28Windows+Apache+resin配置
  • 2017-05-28JAVA 运算符归纳总结

文章分类

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

最近更新的内容

    • Spring4整合Hibernate5详细步骤
    • java 中ThreadPoolExecutor原理分析
    • Java生产者和消费者例子_动力节点Java学院整理
    • 老生常谈java中的数组初始化
    • springMVC发送邮件的简单实现
    • spring+hibernate 两种整合方式配置文件的方法
    • Java 常用类解析:java异常机制,异常栈,异常处理方式,异常链,异常丢失详解
    • 利用spring aop实现动态代理
    • Spring Data JPA 复杂/多条件组合分页查询
    • 详解Java 自动装箱与拆箱的实现原理

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

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