final、finally、finalize
final是一个修饰词。可以修饰变量、方法、类
final修饰变量时分为两种
)1.修饰成员变量:该成员变量不可以被二次赋值。也就是说成员变量无法改变。且该成员变量要么在定义时初始化,要么在构造器中进行初始化。
)2.修饰局部变量:局部变量不可以被二次赋值,也就是说局部变量无法更改。且该局部变量要在使用前进行赋值就好。
final修饰方法:方法无法被子类隐藏或者重写。可以被继承。也就是说,子类只能继承过来使用,无法对方法进行任何的覆盖,连隐藏都不可以
final修饰类:该类无法被继承。
final static 常量:必须要在定义的时候赋值。且值不可更改
finally:是异常捕获机制中的一个关键字,在异常捕获机制中,finally一定会执行。无论有没有catch,try中有没有return。finally中的代码都一定会执行。因此,finally中一般不要有方法的return,要不然,他会覆盖掉方法中其他的返回值
finalize:object类定义的一个关于GC回收的方法。一旦堆中的对象失去引用,也就是说没有引用指向它的时候,当GC开始执行,发现它没有引用指向。那么GC首先会调用该对象的finalize方法,并把该对象状态从待回收状态标注成可回收状态,除非finalize方法中重新给该对象赋了引用。要不然,GC会在下次进行回收的时候,将该对象回收。可以把finalize方法想象成对象被回收之前所要进行的操作。我们一般不回去重写从Object中继承的finalize方法。但是,如果你想要在对象被回收之前做一些相应的操作,那么你可以重写该方法
final、finally、finalize的更多相关文章
- java中的final、finally和finalize
最近在读Thinking In Java,秉着有些地方还能知道自己不会的精神,都去好好查阅了一些资料,在内存分配这一章,看到finalize()这个方法,刚开始很不理解,查阅了一些资料,顺带看了一下f ...
- final、finally、finalize差异
final.finally.finalize差异 1.final修饰符 它代表了一类是完美的类,它不能被继承,因此.一个类不能既被标记为final类别.同一时间被标记为abstract. 将变量或者函 ...
- final 、finally 和 finalize()的区别
1. final 是一个关键字.可以修饰数据.方法.类. 1)final 数据:final 用来修饰一个永不改变的编译时常量,或者运行时初始化但是不希望被改变的常量.一个既是 static又是 fin ...
- 知识点干货--讲一讲final、finally、finalize的区别
"横看成岭侧成峰,远近高低各不同.不识庐山真面目,只缘身在此山中." 这首诗来自于宋朝苏轼<题西林壁>,它的意思是,庐山从正面看,它是一道道连绵起伏的山岭:从侧面看,它 ...
- final、finally和finalize的区别
final.finally和finalize的区别 这三者的区别可以从两个方面来说 1.意思解释方面 (1)final是修饰符(关键字) (2)finally是异常处理中的程序块 (3)finaliz ...
- final、finally、以及finalize的区别
final ---修饰类.变量和方法,修饰的类不能被继承 .修饰的方法不能被重写 .修饰的成员变量不可更改 另外,修饰成员变量必须立即赋值,修饰局部变量使用之前被赋值就可以. finally通常和tr ...
- Java中final、finally、finalize有什么区别?
final.finally和finalize的区别是什么? final: 最终的意思,可以修饰类,方法和变量. 它修饰的类,不能被继承 它修饰的方法,不能被重写 它修饰的变量,不能被改变 finall ...
- Java基础知识总结--final、finally、finalize的区别
谈谈final.finally.finalize的区别 1.final修饰符:如果一个类被声明为final,意味着这个类不能再被派生出新的子类,不能作为父类被别的类继承.因此,一个类不能即被声明为ab ...
- java面试题(杨晓峰)---第三讲谈谈final、finally、finalize有什么不同?
java语言有很多看起来相似,但用途却完全不相同的语言要素,这些内容往往容易成为面试官考察你知识掌握程度的切入点. 今天我要问你一个基础的java经典题目,谈谈final.finally.finali ...
随机推荐
- tornado 学习笔记
import tornado.ioloop import tornado.web class MainHanlwe(tornado.web.RequestHandler): def get(self) ...
- thinkphp3.2.3的使用心得(零)
从模板传参到控制器 模板中代码: <volist name="list" id="vo"> <a href="__CONTROLLE ...
- JAVA NIO学习四:Path&Paths&Files 学习
今天我们将学习NIO 的最后一章,前面大部分涉及IO 和 NIO 的知识都已经讲过了,那么本章将要讲解的是关于Path 以及Paths 和 Files 相关的知识点,以对前面知识点的补充,好了言归正传 ...
- selenium自动化测试打开新标签窗口
做项目自动化测试时遇到这个问题:先打开一个页面需要在现有打开浏览器的基础上新开一个标签页输入网址, 在网上查了很多无果,后来发现了内嵌js代码,让js代码实现的方式.谁有其他方法的可以共享一下 方法如 ...
- IO流之字符流知识总结
字符流:读写字符的 顶级父类是Reader和Writer 操作流程 在Java中IO操作也是有相应步骤的,以文件操作为例,主要的操作流程如下: 使用File类打开一个文件 通过字节流或字符流的子类,指 ...
- Python,PyCharm2017安装教程,包含注册码
一,安装PyCharm 1.下载PyCharm 进入https://www.jetbrains.com/pycharm/download/#section=windows官网下载页面,可以到到PyCh ...
- Java 写三角形 空心三角形 菱形 空心菱形
闲来无事,练习了一下Java基础中的循环语句.练习循环语句,当然少不了,用*打印出来三角形.空心三角形.菱形等这样的几何图形. 粗心大意,失误两次: 一.三角形 遇到一些小问题: 二.金字塔 由于三角 ...
- 8086cpu中的标志寄存器与比较指令
在8086CPU中有一个特殊的寄存器--标志寄存器,该寄存器不同于其他寄存器,普通寄存器是用来存放数据的读取整个寄存器具有一定的含义,但是标志寄存器是每一位都有固定的含义,记录在运算中产生的信息,标志 ...
- PE解析器的编写(三)——区块表的解析
PE文件中所有节的属性都被定义在节表中,节表由一系列的IMAGE_SECTION_HEADER结构排列而成,每个结构用来描述一个节,结构的排列顺序和它们描述的节在文件中的排列顺序是一致的. 具有相同属 ...
- 概率分布之间的距离度量以及python实现(四)
1.f 散度(f-divergence) KL-divergence 的坏处在于它是无界的.事实上KL-divergence 属于更广泛的 f-divergence 中的一种. 如果P和Q被定义成空间 ...