final, finally, finalize 的区别?

330阅读 0评论2015-02-11 guozhaojuan
分类:Java

  1. final,
    • 类,被声明为final的类不能被继承
    • 变量,被声明为final 的变量必须在声明时给定初值,而在以后的引用中只能读取不可修改
    • 方法,被声明为final的变量不能被重写
  2. finally, 通常放在try…catch的后面构造总是执行代码块,这就意味着程序无论正常执行还是发生异常,这里的代码只要JVM不关闭都能执行,可以将释放外部资源的代码写在finally块中
  3. finalized,

    在 Java 中,当你创建一个对象时, Java 虚拟机( JVM )为该对象分配内存、调用构造函数并开始跟踪你使用的对象。当你停止使用一个对象(就是说,当没有对该对象有效的引用时), JVM 通过垃圾回收器将该对象标记为释放状态。

     

    当垃圾回收器将要释放一个对象的内存时,它调用该对象的 finalize() 方法(如果该对象定义了此方法)。垃圾回收器以独立的低优先级的方式运行,只有当其他线程挂起等待该内存释放的情况出现时,它才开始运行释放对象的内存。(事实上,你可以调用 System.gc() 方法强制垃圾回收器来释放这些对象的内存。)

上一篇:Java override与overload的区别
下一篇:Error 和 Exception