当前位置: 首页 > news >正文

wordpress前端上传头像优化是什么意思

wordpress前端上传头像,优化是什么意思,编程怎么学,平台类网站建设价格表你好,我是猿java。 在 Java中,“final”、“finally”和“finalize”是三个不同的关键字或方法,尽管它们的名字相似,但在功能和用途上却有显著的区别,这篇文章我们继续分析一篇农行1面的题目:说说 final&a…

你好,我是猿java。

在 Java中,“final”、“finally”和“finalize”是三个不同的关键字或方法,尽管它们的名字相似,但在功能和用途上却有显著的区别,这篇文章我们继续分析一篇农行1面的题目:说说 final,finally,finalize的区别。

final

final是一个保留关键字,用于修饰类、方法和变量。在 Java 中,final 关键字的主要作用是限制,并且确保某些行为不会被改变。主要表现如下:

  • final变量:一旦被初始化就不能再被改变,即常量。当声明一个变量为final时,必须在定义的时候进行初始化,或者在构造器中初始化,从而确保对应的指针不会再指向其他对象。
  • final方法:不能被子类重写(override)。这样确保方法行为保持一致,不被子类改变。
  • final类:不能被继承。通过将整个类声明为final,防止其他类从它继承。例如,String类就是一个final类,这样可以保证字符串的不可变性。

下面给出几个 final的使用示例:

final变量:用于创建常量,在定义时必须初始化,减少错误和提高易读性:

final double PI = 3.14159;

final方法:确保方法的一致性和安全性,避免被子类篡改:

public final void display() {System.out.println("This is a final method.");
}

final类:类被声明为 final,意味着这个类不能被继承。这确保了类的实现不能被其他类修改或扩展。

public final class Constants {public static final String APP_NAME = "FinalDemoApp";
}

finally

finally 是 Java 中的一个关键字,主要用于异常处理结构中。它通常与 trycatch 块联用,是异常处理机制中一个非常重要的部分。finally 的执行是几乎保证的,无论是否发生异常,即便在 try 块中有 returnbreak 或者 continue 语句,finally 块仍然会执行。但有极少数情况下可能不会执行,例如:

  • 如果在 trycatch 块中调用了 System.exit() 方法,程序会退出,finally 块不会执行。
  • 如果 JVM 出现了故障,比如操作系统层面的崩溃,这些都是程序无法控制的情况。

使用场景

在实际处理异常时,finally 块用于保证一些重要的清理操作,例如关闭资源,释放锁等,通常用于处理以下 3种场景:

1. 资源管理

在编程实践中,资源(如文件、数据库连接、网络连接等)的管理非常重要。finally 块可以用来确保这些资源在使用后被正确关闭、释放,避免资源泄漏。如下示例代码:

FileInputStream fileInput = null;
try {fileInput = new FileInputStream("example.txt");// 处理文件
} catch (IOException e) {e.printStackTrace();
} finally {if (fileInput != null) {try {fileInput.close();} catch (IOException e) {e.printStackTrace();}}
}

2. 恢复状态

在异常处理过程中,系统可能会因为异常而处于一种不一致的状态。finally 块可以用来清理或者恢复这种状态,例如重置修改过的变量。如下示例代码:

Lock lock = new ReentrantLock();
try {lock.lock();// 执行一些可能抛出异常的操作
} finally {lock.unlock(); // 确保锁总是会被释放
}

3.清除事务

在事务处理中,无论事务是否成功,finally 块可以用来保证事务的闭合或清理等后续操作。例如在数据库事务中,确保连接关闭。如下示例代码:

Connection conn = null;
try {conn = DriverManager.getConnection(DB_URL, USER, PASS);conn.setAutoCommit(false);// 执行多步数据库操作,可能抛出异常conn.commit(); // 提交事务
} catch (SQLException e) {if (conn != null) {try {conn.rollback(); // 回滚事务} catch (SQLException ex) {ex.printStackTrace();}}e.printStackTrace();
} finally {try {if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}
}

finalize

finalize() 是 JavaObject 类的一个方法,它允许对象在被垃圾收集器回收之前执行清理操作。尽管在早期的 Java 版本中,finalize() 方法被设计用于释放对象所持有的非 Java 语言的资源,例如关闭文件或网络连接,但是在现代 Java 开发中,finalize() 已不再被推荐使用,其原因主要在于它的许多不确定性和低效性。Oracle 已建议开发者使用其他方式进行资源管理,尤其是在 Java 9 及以后版本中,finalize() 已被标记为过时(deprecated)。

finalize() 的基本原理

1. 垃圾回收机制

  • 在 Java 中,垃圾回收器(Garbage Collector, GC)负责自动回收不再被引用的对象以释放内存。
  • 当垃圾回收器确定一个对象不再被引用时,它会在该对象上调用 finalize() 方法,前提是该对象未被标记为不可及状态。

2.生命周期

  • 该方法可以被重写用于执行特定的清理任务,比如释放非托管资源。
  • finalize() 方法只会被调用一次,即便对象在 finalize() 方法中重新被引用,这个方法也不会被再次调用。

使用 finalize() 的问题

  1. 不确定性:Java 的垃圾回收器无法保证 finalize() 方法会在对象死亡后立即执行。执行时间实际上是由 JVM 的垃圾收集来决定,这可能导致延迟清理和资源延迟释放。

  2. 性能问题: 使用 finalize() 会增加 GC 的负担,因为对象需要被多次标记和遍历,导致一定的性能开销。

  3. 错误处理: 如果 finalize() 方法抛出异常,GC 只会忽略,异常不会传播,这会导致难以调试的问题。

  4. 无法保证调用: 在程序正常终止之前,不一定会触发 GC,因此无法保护重要资源的释放。

使用示例

public class MyClass {@Overrideprotected void finalize() throws Throwable {// 执行一些清理操作}
}

三者对比

控制级别

  • final是编译时属性,用于类设计和限制,避免继承和重写。
  • finally是运行时捕获异常处理后的保障机制,用于资源管理。
  • finalize是执行时的垃圾回收机制的一部分,但不再建议使用。

用途

  • final用于提供不可变性、继承控制、重写控制。
  • finally用于异常处理中的资源清理。
  • finalize过时的资源清理方法,替代为try-with-resourcestry-with-resources极大提升了代码的可读性和可靠性。

总结

本文我们详细地分析了finalfinallyfinalize以及它们之间的对比,实际上它们之间没有什么直接关联,只是单词的前 5个字符相同,所以在很多面试题中,经常把它们放在一起进行对比。对于这 3个关键字或者方法的建议是:

  • 重点理解final关键字的使用
  • 重点掌握finally在异常处理中的使用
  • finalize方法已经不再推荐,只需要了解

学习交流

如果你觉得文章有帮助,请帮忙转发给更多的好友,或关注:猿java,持续输出硬核文章。

http://www.ds6.com.cn/news/31680.html

相关文章:

  • 品牌营销推广公司泰安seo推广
  • 网站营销的流程百度seo发帖推广
  • 综合网站开发seo网络推广经理招聘
  • 淮南网站制作公司软文文案案例
  • 花生壳做的网站稳定吗seo在线优化网站
  • 站长要维护网站企业网络营销策略分析案例
  • 乌鲁木齐做网站价格廊坊网站设计
  • 巢湖做网站的公司国外最好的免费建站
  • 没固定ip怎么做网站百度搜索指数是怎么计算的
  • 自己建设网站要花多少钱网络安全培训机构排名
  • 专业律所网站建设个人网站首页设计
  • 潍坊专业网站建设哪家好自动点击器
  • Gzip 网站 能够压缩图片吗南通网络推广
  • 网站关键词代码湖北网站seo
  • 在线crm在线oa免费观看西安官网seo技术
  • 网站首页制作采用网络营销成功案例分析其成功原因
  • 七星网络网站模板网站建站公司
  • 网站内容管理株洲做网站
  • 怎么做网站底部版权信息排名第一的手机清理软件
  • 龙华做网站 熊掌号主流搜索引擎有哪些
  • wordpress cart插件seo整合营销
  • 比较有趣的网站谷歌关键词热度查询
  • 网站做外链推广的常用方法怎么样引流顾客到店方法
  • 做系统软件的网站网站优化工具
  • 池州网站建设jidela引流推广接单
  • 山西建设工程网菏泽seo
  • 做网站的资源哪里找小红书关键词热度查询
  • 学校网站做网页飘窗怎么做南京seo培训
  • dedecms建设慕课网站网店运营入门基础知识
  • 阿里云空间可以做网站吗国内企业网站模板