在Java中,关键字final
, finally
和finalize
是什么用途?
final
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语句中用于执行代码"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 with resources语句,你可以使用它来自动关闭显式或隐式实现Java .io. closeable或Java .lang. autocloseable的资源
<标题>完成 finalize
在对象被垃圾收集时被调用。您很少需要重写它。一个例子:
protected void finalize() {
//free resources (e.g. unallocate memory)
super.finalize();
}
标题>标题>- "Final"表示某事不能更改。您通常希望在静态变量上使用此方法,这些静态变量将在整个程序生命周期中保持相同的值。
- "Finally"与try/catch块一起使用。不管'try'块中的代码是否抛出异常,"finally"子句中的任何内容都将执行。
- "Finalize"在对象即将被垃圾收集之前由JVM调用。
最后一个关键字用于声明常量。
final int FILE_TYPE = 3;
finally关键字用于try catch语句中,用于指定无论抛出异常如何都要执行的代码块。
try
{
//stuff
}
catch(Exception e)
{
//do stuff
}
finally
{
//this is always run
}
最后(哈哈),finalize我不完全确定它是一个关键字,但是Object类中有一个finalize()函数。
http://allu.wordpress.com/2006/11/08/difference-between-final-finally-and-finalize/
final -常量声明。
finally - finally块总是在try块退出时执行,除了System.exit(0)调用。这确保即使发生意外异常,finally块也会被执行。但是finally不仅仅对异常处理有用——它允许程序员避免清理代码被return、continue或break意外绕过。将清理代码放在finally块中始终是一种好做法,即使没有预期的异常。
finalize() -方法有助于垃圾收集。在垃圾回收器丢弃对象之前调用的方法,使其能够清理其状态。不应该用于释放非内存资源,如文件句柄,套接字,数据库连接等,因为Java只有有限数量的这些资源,你不知道垃圾收集何时开始通过finalize()方法释放这些非内存资源。
你试过在谷歌上搜索,需要澄清解释吗?
final:final是关键字。声明为final的变量应该是只初始化一次,不能更改。Java类声明为终局的不能延期。声明为final的方法不能重写。
最后:finally是一个块。 finally块总是在Try块退出。这确保了finally块被执行即使发生了意外异常。但最后是有用的不仅仅是异常处理——它允许程序员避免清理代码意外地被返回绕过,要么继续,要么中断。将清理代码放在finally块中是这是一个很好的做法,即使没有预料到异常。
完成:finalize是一个方法。对象在被垃圾回收之前运行时系统调用它的finalize()方法。你可以写系统资源在获取垃圾之前释放finalize()方法中的代码收集。
1。最后•Final用于对类、方法和变量施加限制。•Final类不能被继承,Final方法不能被重写,Final变量的值不能被改变。•除了在构造函数中初始化的空白Final变量外,Final变量在创建时初始化。•Final是关键字。
2。最后•Finally与try和catch一起用于异常处理。•无论异常处理与否,都将执行。•该块用于关闭资源,如数据库连接,I/O资源。•最后是一个块。
3。完成Finalize由垃圾收集线程在收集符合条件的对象执行清理处理之前调用。•这是对象执行任何清理的最后机会,但由于不能保证finalize()是否会被调用,因此保留资源直到finalize调用是不好的做法。Finalize是一个方法
final在java中的含义是:-应用于变量意味着相应的变量一旦初始化就不能再被修改
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()");
}
}
finally的意思是:
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执行与否,finally中的内容也将始终被执行。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();
}}