java中final、finally、finalized使用方法
首先需要明白 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流等操作
try语句没有被执行,如在try语句之前就返回了,这样finally语句就不会执行;因此说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。
如果在try代码块中执行System.exit(0)语句;那么将终止Java虚拟机JVM,因此,finally语句也不会被执行到。
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使用方法相关推荐
- [面试题]java中final finally finalized 的差别是什么?
final 是修饰符,能够用于修饰变量.方法和类.修饰变量时.代表变量不能够改动,也就是常量了.常量须要在定义时赋值或通过构造函数赋值,两者仅仅能选其一:修饰方法时,代表方法仅仅能调用,不能被 ove ...
- [面试题]java中final finally finalized 的区别是什么?
final 是修饰符,可以用于修饰变量.方法和类.修饰变量时,代表变量不可以修改,也就是常量了,常量需要在定义时赋值或通过构造函数赋值,两者只能选其一:修饰方法时,代表方法只能调用,不能被 overr ...
- java 中final修饰的变量_java中final修饰符的使用方法
本文为大家分享了java中final修饰符的使用,供大家参考,具体内容如下 1.final修饰符的用法: final可以修饰变量,被final修饰的变量被赋初始值之后,不能对它重新赋值. final可 ...
- java中final关键字的使用
final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰 类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...
- 在Java中实现单例模式的有效方法是什么? [关闭]
在Java中实现单例模式的有效方法是什么? #1楼 我使用Spring框架来管理我的单身人士. 它不会强制类的"单一性"(如果涉及多个类加载器,您将无法真正做到),但是它提供了一种 ...
- JAVA中Final的用法
JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...
- java中final的意义
转载自 https://blog.csdn.net/hikvision_java_gyh/article/details/8964541 1.如果一个数据既是static又是final,那么它会拥有一 ...
- 转 Java中final、finally、finalize的区别与用法
Java中final.finally.finalize的区别与用法 1.简单区别: final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承. finally是异常处理语句结构 ...
- java中常量final的用法_详解Java中final的用法
本文主要介绍了Java中final的使用方法,final是java的关键字,本文就详细说明一下它的使用方法,需要的朋友可以参考下 概念 final 具有"不可改变的"的含义,可以修 ...
- java中的五种排序方法_用Java排序的五种有用方法
java中的五种排序方法 Java排序快速概述: 正常的列表: private static List VEGETABLES = Arrays.asList("apple", &q ...
最新文章
- labview简易计算机实验报告,labview实验报告..doc
- python使用matplotlib可视化、为可视化图像添加图例(legend)、自定义图例的字体格式、字体大小、字体颜色等
- Flash as3 以鼠标点为中心缩放效果
- jenkin系列_调度jmeter实现分布式测试
- Net设计模式实例之备忘录模式(Memento Pattern)
- 美好生活从撸好代码开始
- 机器学习笔记(八):神经网络:学习
- 乐高ev3搭建图_乐高EV3机械爪合集
- 智能传感器产业三年行动指南
- primefaces_Primefaces命令按钮
- JS每日一题: Vue中mixin怎么理解?
- 独立同分布(iid)随机变量的一些趣题
- mysql audit log_关于MySQL AUDIT(审计)那点事
- 从雀书无代码应用——浅谈零代码开发平台(上)
- 实践任务1:利用 HBuilderX制作产品展示模块+实践任务2:利用 HBuilderX制作公司网站首页+实践任务3: 利用 HBuilderX制作公司网站首页实现固定侧边菜单
- 看,那人好像一个产品狗,对,这就是产品狗
- 上帝掷骰子吗txt_学物理,男女生差异大吗?该怎么学?杭州三位重高老师这么说...
- OSChina 周六乱弹 ——你们怎么懂我的少年心
- python爬虫使用正则爬取网站
- 科大讯飞AI学习机T10测评:一台平板,就能实现减负增效?