在Java中,关键字“ final”,“ finally”和“ finalize”的作用是什么?[关闭]

2020/12/16 01:21 · java ·  · 0评论

在Java中,目的是什么做的关键字finalfinallyfinalize履行?

最后

final 可用于标记变量“不可更改”

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

final 也可以使方法“不可替代”

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

final也可以使类不是“可继承的”。即该类不能被子类化。

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

最后

finally在try / catch语句中用于“始终”执行代码

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 with resources语句,可用于自动关闭显式或隐式实现java.io.Closeablejava.lang.AutoCloseable的资源。

定案

finalize当对象被垃圾回收时被调用。您很少需要覆盖它。一个例子:

protected void finalize() {
  //free resources (e.g. unallocate memory)
  super.finalize();
}
  • “最终”表示某些内容无法更改。通常,您希望在静态变量上使用此变量,这些变量在程序的整个生命周期内都将具有相同的值。
  • “最后”与try / catch块结合使用。无论“ try”块中的代码是否引发异常,“ finally”子句中的所有内容都将执行。
  • JVM将在对象将要进行垃圾回收之前调用“完成”。

final关键字用于声明常量。

final int FILE_TYPE = 3;

在try catch语句中使用finally关键字来指定要执行的代码块,而不考虑抛出的异常。

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

最后(哈哈),finalize im不能完全确定是一个关键字,但是Object类中有一个finalize()函数。

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

最终–常量声明。

最终–最终try块总是在try块退出时执行,但System.exit(0)调用除外。这样可以确保即使发生意外异常,也可以执行finally块。但是,最后,它不仅对异常处理有用,它还使程序员可以避免清除代码被返回,继续或中断意外地绕过。将清理代码放在finally块中始终是一个好习惯,即使没有例外的情况也是如此。

finalize()–方法有助于垃圾回收。在垃圾回收器丢弃对象之前调用的一种方法,允许其清除其状态。不应用于释放非内存资源,例如文件句柄,套接字,数据库连接等,因为Java仅具有有限数量的这些资源,并且您不知道何时垃圾回收将开始释放这些非内存资源通过finalize()方法。

您是否尝试过在Google上搜索,并且需要澄清以获取解释?

final:
final是关键字。清除为final的变量只能初始化一次,并且不能更改。声明为final的Java类无法扩展。声明为final的方法不能被覆盖。

终于:
终于是一个障碍。try块退出时,finally块始终执行。这样可以确保即使发生意外异常,也可以执行finally块。但是,最后,它不仅对异常处理有用,它还使程序员避免因返回,继续或中断而意外跳过清理代码。将清理代码放在finally块中始终是一个好习惯,即使没有例外的情况也是如此。

finalize:
finalize是一种方法。在对象被垃圾回收之前,运行时系统将调用其finalize()方法。您可以在收集垃圾之前用finalize()方法编写系统资源释放代码。

1. Final
•Final用于对类,方法和变量施加限制。
•不能继承final类,不能覆盖final方法,并且不能更改final变量值。•最终变量在创建时进行初始化,除非空白的最终变量在构造函数中初始化。•Final是关键字。

2.最终
•最终与try和catch一起用于异常处理。
•无论是否处理异常都将执行。•此块用于关闭资源,如数据库连接,I / O资源。•最后是一个障碍。

3. Finalize
•垃圾回收线程在收集合格对象进行清理处理之前调用Finalize。
•这是对象执行任何清理的最后机会,但是由于不能保证是否调用finalize(),因此将资源保留到finalize调用是一种不好的做法。•Finalize是一种方法。

java中final的含义是:-应用于变量意味着一旦初始化就不能再修改相应的变量

private final double numer = 12;

如果您尝试修改此值,则会出现错误。

-应用于方法意味着不能覆盖相应的方法

 public final void displayMsg()
    {
        System.out.println("I'm in Base class - displayMsg()");
    }

但是final方法可以被继承,因为final关键字限制了方法的重新定义。

-应用于类意味着不能扩展相应的类。

class Base
{

    public void displayMsg()
    {
        System.out.println("I'm in Base class - displayMsg()");
    }
}

最后的含义是:

class TestFinallyBlock{  
  public static void main(String args[]){  
  try{  
   int data=25/5;  
   System.out.println(data);  
  }  
  catch(NullPointerException e){System.out.println(e);}  
  finally{System.out.println("finally block is always executed");}  
  System.out.println("rest of the code...");  
  }  
} 

在此示例中,即使不执行try-catch,final内部的内容也将始终执行。finalize的含义:

class FinalizeExample{  
public void finalize(){System.out.println("finalize called");}  
public static void main(String[] args){  
FinalizeExample f1=new FinalizeExample();  
FinalizeExample f2=new FinalizeExample();  
f1=null;  
f2=null;  
System.gc();  
}}  

在致电垃圾收集器之前。

本文地址:http://java.askforanswer.com/zaijavazhongguanjianzi-final-finallyhe-finalizedezuoyongshishenmeguanbi.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!