Final用於修飾類、成員變量和成員方法。final修飾的類,不能被繼承(String、StringBuilder、StringBuffer、Math,不可變類),其中全部的方法都不能被重寫,因此不能同時用abstract和final修飾類(abstract修飾的類是抽象類,抽象類是用於被子類繼承的,和final起相反的做用);Final修飾的方法不能被重寫,可是子類能夠用父類中final修飾的方法;Final修飾的成員變量是不可變的,若是成員變量是基本數據類型,初始化以後成員變量的值不能被改變,若是成員變量是引用類型,那麼它只能指向初始化時指向的那個對象,不能再指向別的對象,可是對象當中的內容是容許改變的。html
、程序員
Final修飾的形參,不能在方法中對形參賦值安全
Final修飾的局部變量和成員變量狀況同樣,一旦賦值,不可改變。ui
方法內聲明的類或者方法內的匿名內部類,訪問該方法內定義的變量,該變量必需要用final修飾。當內部類訪問局部變量時,會擴大局部變量的做用域,若是局部變量不用 final 修飾,咱們就能夠在內部類中隨意修改該局部變量值,並且是在該局部變量的做用域範圍以外能夠看到這些修改後的值,會出現安全問題。.net
參考:http://www.cnblogs.com/hapjin/p/5744478.htmlhtm
Finally一般和try catch搭配使用,保證無論有沒有發生異常,資源都可以被釋放(釋放鏈接、關閉IO流)。對象
Finalize是object類中的一個方法,子類能夠重寫finalize()方法實現對資源的回收。垃圾回收只負責回收內存,並不負責資源的回收,資源回收要由程序員完成,Java虛擬機在垃圾回收以前會先調用垃圾對象的finalize方法用於使對象釋放資源(如關閉鏈接、關閉文件),以後才進行垃圾回收,這個方法通常不會顯示的調用,在垃圾回收時垃圾回收器會主動調用。blog
參考連接:繼承
http://www.iteye.com/topic/484934內存
http://blog.csdn.net/carolzhang8406/article/details/6705831