首先需要明白  final和finally是关键字,finalize是一个方法。

1. final关键字

  final可以修饰类、方法、变量,

  • 修饰类表示类不可以被继承
  • 修饰方法表示此方法不可以被重写(覆盖)但是可以被重载
  • 修饰变量表示变量不可变(引用不可变--也就是不可以重新指向另一个对象,但是引用内容可以变),而且static final 经常用作常量处理。
package cn.qlq.fina;
/*** final 关键字使用* @author Administrator**/
public class TestCla {private static final int a = 1;private static final User u = new User();;public static void main(String[] args) {// a = 2;// final修饰的变量不可改变(引用不可变)// u=new User();//引用不可变,不可再指向其他对象,但是引用内容可以改变
        u.setUsername("sssssss");u.setUsername("XXXXXXX");}public void test1(final int x ){
//        x=1;//final修饰的变量不可改变,方法上的形参也不可以变
    }
}

2.finally的使用:---通常用于try..catch..之后关闭一些IO流等操作

  1. try语句没有被执行,如在try语句之前就返回了,这样finally语句就不会执行;因此说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。

  2. 如果在try代码块中执行System.exit(0)语句;那么将终止Java虚拟机JVM,因此,finally语句也不会被执行到。

  3. finally块的语句在try或catch中的return语句执行之后返回之前执行且finally里的修改语句可能影响也可能不影响try或catch中return已经确定的返回值,如果返回值类型为传址类型,则影响;传值类型,则不影响。若finally里也有return语句则覆盖try或catch中的return语句直接返回。

测试代码:

package cn.qlq.test;/*** * @author Administrator**/
public class MyTest {public static final int i = 6;@SuppressWarnings("finally")public static long test1() {String val = "5d";long value = 5;try {value = Long.parseLong(val);} catch (NumberFormatException e) {System.out.println("catch...");return value++;} finally {System.out.println("finally...");value--;return value;}}public static void main(String[] args) {System.out.println(MyTest.test1());}
}

结果:

catch...
finally...
5

3.finalize()析构方法的使用

  finalize()在JVM回收对象的时候会调用该对象的此方法,用于垃圾回收的时候处理一些事情。

package cn.qlq.test;/*** * 测试finalize()方法,对象消亡的时候调用的方法,类似于C++的析构函数* @author Administrator**/
public class MyTest {public static final int i = 6; @Overrideprotected void finalize() throws Throwable {System.out.println("对象要死亡");}@SuppressWarnings("finally")public long test1() {String val = "5d";long value = 5;try {value = Long.parseLong(val);} catch (NumberFormatException e) {System.out.println("catch...");return value++;}finally {System.out.println("finally...");value--;return value;}}public static void main(String[] args) {MyTest my = new MyTest();System.out.println(my.test1());my = null;//清空对象的引用,使其被垃圾回收System.gc();//调用GC回收垃圾
    }
}

结果:

catch...
finally...
5
对象要死亡

java中final、finally、finalized使用方法相关推荐

  1. [面试题]java中final finally finalized 的差别是什么?

    final 是修饰符,能够用于修饰变量.方法和类.修饰变量时.代表变量不能够改动,也就是常量了.常量须要在定义时赋值或通过构造函数赋值,两者仅仅能选其一:修饰方法时,代表方法仅仅能调用,不能被 ove ...

  2. [面试题]java中final finally finalized 的区别是什么?

    final 是修饰符,可以用于修饰变量.方法和类.修饰变量时,代表变量不可以修改,也就是常量了,常量需要在定义时赋值或通过构造函数赋值,两者只能选其一:修饰方法时,代表方法只能调用,不能被 overr ...

  3. java 中final修饰的变量_java中final修饰符的使用方法

    本文为大家分享了java中final修饰符的使用,供大家参考,具体内容如下 1.final修饰符的用法: final可以修饰变量,被final修饰的变量被赋初始值之后,不能对它重新赋值. final可 ...

  4. java中final关键字的使用

    final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰  类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...

  5. 在Java中实现单例模式的有效方法是什么? [关闭]

    在Java中实现单例模式的有效方法是什么? #1楼 我使用Spring框架来管理我的单身人士. 它不会强制类的"单一性"(如果涉及多个类加载器,您将无法真正做到),但是它提供了一种 ...

  6. JAVA中Final的用法

    JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...

  7. java中final的意义

    转载自 https://blog.csdn.net/hikvision_java_gyh/article/details/8964541 1.如果一个数据既是static又是final,那么它会拥有一 ...

  8. 转 Java中final、finally、finalize的区别与用法

    Java中final.finally.finalize的区别与用法 1.简单区别: final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承. finally是异常处理语句结构 ...

  9. java中常量final的用法_详解Java中final的用法

    本文主要介绍了Java中final的使用方法,final是java的关键字,本文就详细说明一下它的使用方法,需要的朋友可以参考下 概念 final 具有"不可改变的"的含义,可以修 ...

  10. java中的五种排序方法_用Java排序的五种有用方法

    java中的五种排序方法 Java排序快速概述: 正常的列表: private static List VEGETABLES = Arrays.asList("apple", &q ...

最新文章

  1. labview简易计算机实验报告,labview实验报告..doc
  2. python使用matplotlib可视化、为可视化图像添加图例(legend)、自定义图例的字体格式、字体大小、字体颜色等
  3. Flash as3 以鼠标点为中心缩放效果
  4. jenkin系列_调度jmeter实现分布式测试
  5. Net设计模式实例之备忘录模式(Memento Pattern)
  6. 美好生活从撸好代码开始
  7. 机器学习笔记(八):神经网络:学习
  8. 乐高ev3搭建图_乐高EV3机械爪合集
  9. 智能传感器产业三年行动指南
  10. primefaces_Primefaces命令按钮
  11. JS每日一题: Vue中mixin怎么理解?
  12. 独立同分布(iid)随机变量的一些趣题
  13. mysql audit log_关于MySQL AUDIT(审计)那点事
  14. 从雀书无代码应用——浅谈零代码开发平台(上)
  15. 实践任务1:利用 HBuilderX制作产品展示模块+实践任务2:利用 HBuilderX制作公司网站首页+实践任务3: 利用 HBuilderX制作公司网站首页实现固定侧边菜单
  16. 看,那人好像一个产品狗,对,这就是产品狗
  17. 上帝掷骰子吗txt_学物理,男女生差异大吗?该怎么学?杭州三位重高老师这么说...
  18. OSChina 周六乱弹 ——你们怎么懂我的少年心
  19. python爬虫使用正则爬取网站
  20. 科大讯飞AI学习机T10测评:一台平板,就能实现减负增效?

热门文章

  1. 五、网卡信息检测与网络流量检测
  2. hikaricp mysql_配置HikariCP连接池
  3. 不该被隐藏的光芒:上世纪NASA三位被忽视的女性工程师
  4. 两台电脑之间如何直接传资料
  5. Python个人学习笔记(1)——filter函数
  6. EF学习之路——1.EF介绍及架构搭建
  7. 灰姑娘的魔法衣橱 RENT THE RUNWAY= 女人+互联网 | 经济学人全球早报精选
  8. 氚云后端提交后填充提交时间
  9. MoveWindow
  10. 在mac上进行hadoop集群搭建