文档章节

final,finally,finalize

Ld_kaiyuan
 Ld_kaiyuan
发布于 2017/06/05 13:59
字数 423
阅读 4
收藏 0
点赞 0
评论 0

1,final

一个修饰符,最近看并发编程总是看到。

final 能修饰变量 例如 private final File file 一个不可变的文件对象 你可以在局部方法块中给file赋值,但并不会影响最外面的file,因为对象在被赋值的时候,一般没有final修饰是会得到新赋值的引用的,有了final则可以保持原来那个file不被在局部块中赋值的files影响。

不可变对于基本类型来说是值不变

不可变对于对象来说是引用不会被改变

final 能修饰方法 例如 public  final go(){} 一个不能被重写的方法

final 能修饰类 例如 public final ClassA{} 一个不能被继承的类
 

2,finally

一个和try catch finally 一起用的家伙

finally区域中的逻辑 会在return 前使用被调用 常用来做一些必须执行的动作

 

 

3,finalize:
  根据Java语言规范,JVM保证调用finalize函数之前,这个对象是不可达的,但是JVM不保证这个函数一定会被调用。另外,规范还保证finalize函数最多运行一次。
   通常,finalize用于一些不容易控制、并且非常重要资源的释放,例如一些I/O的操作,数据的连接。这些资源的释放对整个应用程序是非常关键的。 在这种情况下,程序员应该以通过程序本身管理(包括释放)这些资源为主,以finalize函数释放资源方式为辅,形成一种双保险的管理机制,而不应该仅仅依靠finalize来释放资源。

本文转载自:http://sdywcd.iteye.com/blog/1842751

共有 人打赏支持
Ld_kaiyuan
粉丝 2
博文 42
码字总数 7079
作品 0
朝阳
程序员
【J2SE】final、finalize、finally区别

final、finalize、finally这三个虽然长得很像,但差别还是很大的。final为关键字,finalize()为Object类中的方法。finally为区块标识,用于try catch中。 一、final关键字 用于以下四个地方:...

qq_26545305 ⋅ 2017/10/19 ⋅ 0

[CareerCup] 14.3 Final Finally Finalize 关键字比较

14.3 What is the difference between final, finally, and finalize? 这道题考察我们Java中的三个看起来很相似的关键字final,finally和finalize。 别看它们三长的很像,但是完全不是一回事...

机器的心脏 ⋅ 2017/12/15 ⋅ 0

JAVA final finally finalize区别

简单区别: 中等区别: 虽然这三个单词在Java中都存在,但是并没有太多关联: final:java中的关键字,修饰符。 1.如果一个类被声明为final,就意味着它不能再派生出新的子类,不能作为父类被...

qq22734179 ⋅ 2014/03/21 ⋅ 0

【Java】疯狂Java基础(二)——final, finally, finalize 的区别

一、前言 这次说说final、finally、finalize这三者的区别,其实对这三者有了解的程序员,基本都知道,他们三个之间没有毛线关系。就是因为名字相似,其他的什么也没有。 二、final final可以...

kisscatforever ⋅ 03/29 ⋅ 0

final、finally、finalize

final关键字 先看看final关键字,它可以被用于以下几个地方: 1、修饰属性、局部变量、方法参数: 如果final修饰的是一个基本类型,就表示这个变量所赋予的值不可修改,即它是个常量;如果f...

小湘西 ⋅ 2015/10/24 ⋅ 0

Java编程语言:精选,Java程序员的笔试题,你都知道答案吗?欢迎来补充!!!

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

启示录是真的 ⋅ 05/23 ⋅ 0

Java中最常见的十道面试题

第一,谈谈final, finally, finalize的区别。 final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,...

火力全開 ⋅ 2016/10/10 ⋅ 0

final finally与finalize三者的区别

看到这个题目,感觉像是高中题目一样。出题者用心良苦啊,将这个三个联系起来,考察java基本功。在实际中finalize这个用得最少,而其他两个都很熟悉了。但若想流畅的表达三者区别,还行自己好...

thinkerfans ⋅ 2014/01/02 ⋅ 0

Java内存-GC篇

Java内存-GC篇 从卡片机到使用内存,是一次计算机的跳跃,再从ASM到C/C++时代,是一次语言上的跳跃,从手动垃圾回收再到自动垃圾回收,这是码农的解放。 内存到底有什么作用?非常直接,内存...

精通吹水 ⋅ 2016/04/27 ⋅ 0

Java面试题之Java 的异常处理

1. Java中异常分为哪些种类 (1) 编译时异常,也叫强制性异常,和CheckedException (2)运行时异常,也叫没强制性异常和RuntimeException 2.error和exception的区别? error一般是指在虚拟...

年轻诠释我们的梦想_705b ⋅ 05/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 35分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 39分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 44分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 46分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 56分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 今天 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 今天 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部