在Java中,关键字`final`,`finally`和`finalize`的目的是什么?

在Java中,关键字的final目的是什么, finallyfinalize落实?

最后

final可以用来标记一个variables“不可更改”

 private final String name = "foo"; //the reference name can never change 

final还可以使一个方法不能“覆盖”

 public final String toString() { return "NULL"; } 

final还可以让一个类不是“可inheritance的”。 即class级不能被分类。

 public final class finalClass {...} public class classNotAllowed extends finalClass {...} // Not allowed 

最后

finally用try / catch语句来执行代码“always”

 lock.lock(); try { //do stuff } catch (SomeException se) { //handle se } finally { lock.unlock(); //always executed, even if Exception or Error or se } 

Java 7有一个新的资源语句try ,您可以使用它来自动closures显式或隐式实现java.io.Closeable或java.lang.AutoCloseable的资源

敲定

当一个对象被垃圾收集时调用finalize 。 你很less需要重写它。 一个例子:

 protected void finalize() { //free resources (eg unallocate memory) super.finalize(); } 
  • “最后”表示不能改变。 你通常要在静态variables上使用这个variables,这个静态variables在程序的整个生命周期中都会保持相同的值。
  • “finally”与try / catch块一起使用。 无论“try”块中的代码是否引发exception,“finally”子句中的任何内容都将被执行。
  • 在一个对象即将被垃圾收集之前,由JVM调用“Finalize”。

final关键字用于声明常量。

 final int FILE_TYPE = 3; 

在try catch语句中使用finally关键字来指定要执行的代码块,而不pipe抛出的exception如何。

 try { //stuff } catch(Exception e) { //do stuff } finally { //this is always run } 

最后(哈哈),最后确定即时消息不完全确定是一个关键字,但在Object类中有一个finalize()函数。

http://allu.wordpress.com/2006/11/08/difference-between-final-finally-and-finalize/

最终 – 不变的声明。

finally – 终止块总是在try块退出时执行,除了System.exit(0)调用。 这确保即使发生意外的exception也能执行finally块。 但是最后对于不仅仅是exception处理而言是有用的 – 它允许程序员避免由于返回,继续或中断而意外绕过清除代码。 清理代码放在finally块里总是一个很好的习惯,即使没有预期的例外。

finalize() – 方法有助于垃圾收集。 在垃圾收集器丢弃对象之前调用的方法,允许清理其状态。 不应该用来释放像文件句柄,套接字,数据库连接等非内存资源,因为Java只有有限的这些资源,你不知道什么时候垃圾回收将要启动释放这些非内存资源通过finalize()方法。

你尝试search谷歌,需要澄清的解释?

final: final是一个关键字。 作为final而被删除的variables只能被初始化一次,不能被改变。 声明为final的Java类不能被扩展。 声明为final的方法不能被覆盖。

最后: 最后是一个块。 finally块总是在try块退出时执行。 这确保即使发生意外的exception也能执行finally块。 但是最后对于不仅仅是exception处理而言是有用的 – 它允许程序员避免由于返回,继续或中断而意外绕过清除代码。 清理代码放在finally块里总是一个很好的习惯,即使没有预期的例外。

敲定: 敲定是一种方法。 在垃圾收集对象之前,运行时系统调用它的finalize()方法。 在收集垃圾之前,你可以在finalize()方法中写入系统资源释放代码。

1.最终 •最终用于对类,方法和variables施加限制。 final类不能被inheritance,final方法不能被覆盖,finalvariables值也不能被改变。 •除了在构造函数中初始化的空白finalvariables外,最终variables在创build时被初始化。 •最终是一个关键字。

2.最后 •最后用于exception处理以及try和catch。 •是否处理exception将被执行。 •该块用于closures数据库连接,I / O资源等资源。 •最后是一个块。

3.完成 •在收集符合条件的对象执行清理处理之前,由垃圾收集线程调用Finalize。 •这是对象进行清理的最后一次机会,但由于不能保证finalize()是否会被调用,所以不好保留资源直到最终调用。 Finalize是一种方法。

最后:

  • variables:初始化后,该值无法更改。
  • 方法:该方法不能被子类重写。
  • class级:class级不能分类。

最后:

finally关键字与try / catch块关联使用,并保证将执行一段代码,即使抛出exception也是如此。

最终确定:

自动垃圾回收器在实际销毁对象之前调用finalize()方法。 因此,类可以重写Object类中的finalize()方法,以便在垃圾回收期间定义自定义行为