会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 面试官:final、finally、finalize 有什么区别?!

面试官:final、finally、finalize 有什么区别?

时间:2025-11-05 15:59:52 来源:益强数据堂 作者:人工智能 阅读:835次

 1.final 介绍

final 是面试 Java 语言中的一个关键字,使用 final 修饰的什区对象不允许修改或替换其原始值或定义。

final 可以用来修饰:类、面试方法、什区变量和参数,面试其中可以用来修饰“参数”这一项,什区容易被人遗忘,面试这是什区 final 的 4 种用法。

1.1 final 用法说明

    当 final 修饰类时,面试此类不允许被继承,什区表示此类设计的面试很完美,不需要被修改和扩展。什区

    当 final 修饰方法时,面试此方法不允许任何从此类继承的什区类来重写此方法,表示此方法提供的面试功能已经满足当前要求,不需要进行扩展。

    当 final 修饰变量时,表示该变量一旦被初始化便不可以被修改。

    当 final 修饰参数时,表示此参数在整个方法内不允许被修改。

1.2 final 用法展示

final 修饰类: 

final class Animal {  } 

final 修饰方法: 

public class FinalExample {      public final void sayHi() {          System.out.println("Hi~");      }  } 

final 修饰变量: 

public class FinalExample {     private static final String MSG = "hello";   //......  } 

final 修饰参数: 

public class FinalExample {      public void sayHi(final String name) {          System.out.println("Hi," + name);      }  }  

2.finally 介绍

finally 则是 Java 中保证重点代码一定要被执行的一种机制。

我们可以使用 try-finally 或者 try-catch-finally 来进行类似关闭 JDBC 连接、保证释放锁等动作。

2.1 finally 用法展示 

try {      // do something  } finally {      // 一定会执行的服务器托管代码  } 

2.2 finally 扩展

有时候面试也会问:finally 是否一定会被执行?这是一个有诱导嫌疑的问题,正常情况下 finally 一定是会执行的,但有一个特殊情况 finally 也是不会执行的,特殊的实现代码和执行结果如下:

 

3.finalize 介绍

finalize 是 Object 类中的一个基础方法,它的设计目的是保证对象在被垃圾收集前完成特定资源的回收,但在 JDK 9 中已经被标记为弃用的方法(deprecated)。

在实际开发中不推荐使用 finalize 方法,它虽然被创造出来,但无法保证 finalize 方法一定会被执行,所以不要依赖它释放任何资源,因为它的执行极不“稳定”。在 JDK 9 中将它废弃,也很好的证明了此观点。

finalize 性能问题

finalize 除了执行“不稳定”之外,还有一定的性能问题。免费源码下载

因为 finalize 的执行是和垃圾收集关联在一起的,一旦实现了非空的 finalize 方法,就会导致相应对象回收呈现数量级上的变慢,有人专门做过 benchmark,大概是 40~50 倍的下降。

因为 finalize 被设计成在对象被垃圾收集前调用,这就意味着实现了 finalize 方法的对象是个“特殊公民”,JVM 要对它进行额外处理。finalize 本质上成为了快速回收的阻碍者,可能导致你的对象经过多个垃圾收集周期才能被回收。 

总结

final、finally 和 finalize 从英文字面角度来看,看似很像,实则 3 者在 Java 中没任何关系。final 是用来修饰类、方法、变量和参数的关键字,被 final 修饰的对象不允许修改或替换其原始值或定义;finally 是 Java 中保证重点代码一定要被执行的WordPress模板一种机制;finalize 是 Object 类中的一个基础方法,它的设计目的是保证对象在被垃圾收集前完成特定资源的回收的,但其执行“不稳定”,且有一定的性能问题,已经在 JDK 9 中被设置为弃用的方法了。 

(责任编辑:人工智能)

上一篇:以百发100怎么样(探讨百发100的可行性及效果)
下一篇:同样的先下载PHP源码包,键入“cd /usr/local/src”回车并执行“sudo wget http://cn2.php.net/distributions/php-5.3.8.tar.gz”下载PHP源码包。解压后进入php目录中,“cd php-5.3.8”回车,并执行“sudo ./configure --prefix=/usr/local/server/php --with-config-file-path=/usr/local/server/php --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --enable-gd-native-ttf --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli”回车。出现下图就可以继续进行下一步。再接着键入“sudo make && make install”。等待操作完成之后,复制启动脚本。输入“sudo cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm”回车,接着再执行“sudo chmod +x /etc/init.d/php-fpm”。修改PHP-FPM配置文件,依次执行“cd /usr/local/server/php/etc”、“mv php-fpm.conf.default php-fpm.conf”、“vi php-fpm.conf”编辑配置文件。去掉25行前的分号。修改第131和132行的user和group为当前用户(安装系统时设置的帐户名)。去掉161、166、171、176行前面的分号,如下图。保存并退出。PHP-FPM启动及退出分别使用命令“/etc/init.d/php-fpm start”与“/etc/init.d/php-fpm stop”。
推荐内容
  • 诺基亚106GSM手机的特点及使用体验(一款简单耐用的功能手机)
  • 如何使用U盘格式化电脑?(一步步教你快速、安全地进行U盘格式化)
  • 分区助手PE教程(一键分区、数据保护、系统恢复,让分区管理变得简单易懂)
  • MotoZ信号表现如何?(探索MotoZ在各种信号环境下的表现和关键特性)
  • 今天到网上搜ubuntu创建桌面快捷方式,发现尽是些不负责任,有问题的教程,故我也发教程一篇复制代码代码如下:具体内容参照下面的模板,顺便讲一下linux下软件的安装方法,以sublime text 2为例复制代码代码如下:复制代码代码如下:关于category,这里有一个主要列表可供选择he table below lists all Main Categories.Main Category Description NotesAudioVideo Application for presenting, creating, or processing multimedia (audio/video)Audio An audio application Desktop entry must include AudioVideo as wellVideo A video application Desktop entry must include AudioVideo as wellDevelopment An application for developmentEducation Educational softwareGame A gameGraphics Application for viewing, creating, or processing graphicsNetwork Network application such as a web browserOffice An office type applicationScience Scientific softwareSettings Settings applications Entries may appear in a separate menu or as part of a Control CenterSystem System application, System Tools such as say a log viewer or network monitorUtility Small utility application, Accessoriesreferences:http://standards.freedesktop.org/menu-spec/latest/apa.html#main-category-registryhttp://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
  • 使用DG工具分区教程(以DG工具分区为例,详解分区操作步骤,让你轻松掌握)