lock.lock();
try {
//do stuff
} catch (SomeException se) {
//handle se
} finally {
lock.unlock(); //always executed, even if Exception or Error or se
}
«Финал» означает, что что-то изменить нельзя. Обычно вы хотите использовать это для статических переменных, которые будут иметь одно и то же значение на протяжении всей жизни вашей программы.
«Наконец» используется вместе с блоком try / catch. Все, что находится внутри предложения «finally», будет выполнено независимо от того, генерирует ли код в блоке «try» исключение или нет.
finally - блок finally всегда выполняется при выходе из блока try, за исключением вызова System.exit (0). Это гарантирует выполнение блока finally даже в случае возникновения непредвиденного исключения. Но наконец, он полезен не только для обработки исключений - он позволяет программисту избежать случайного обхода кода очистки посредством возврата, продолжения или прерывания. Помещение кода очистки в блок finally всегда является хорошей практикой, даже если не ожидается никаких исключений.
finalize () - метод помогает в сборке мусора. Метод, который вызывается перед тем, как объект будет удален сборщиком мусора, что позволяет ему очистить свое состояние. Не следует использовать для освобождения ресурсов, не связанных с памятью, таких как дескрипторы файлов, сокеты, соединения с базой данных и т. Д., Потому что Java имеет только конечное количество этих ресурсов, и вы не знаете, когда сборка мусора будет запущена для освобождения этих ресурсов, не связанных с памятью через метод finalize ().
Вы пытались выполнить поиск в Google и нуждаетесь в пояснении?
Добро пожаловать в Stack Overflow! Хотя эта статья может на самом деле ответить на вопрос, было бы предпочтительнее включить сюда основные части ответа и предоставить ссылку для справки. Stack Overflow полезен настолько, насколько полезны его вопросы и ответы, и если этот хост блога выходит из строя или URL-адреса перемещаются, этот ответ становится бесполезным. Благодаря!
sarnold
6
final:
final - ключевое слово. Переменная, объявленная как final, должна быть инициализирована только один раз и не может быть изменена. Классы Java, объявленные как final, не могут быть расширены. Методы, объявленные как final, не могут быть переопределены.
наконец:
наконец-то блок.Блок finally всегда выполняется при выходе из блока try. Это гарантирует выполнение блока finally даже в случае возникновения непредвиденного исключения. Но наконец, он полезен не только для обработки исключений - он позволяет программисту избежать случайного обхода кода очистки при возврате, продолжении или прерывании. Помещение кода очистки в блок finally всегда является хорошей практикой, даже если не ожидается никаких исключений.
завершить:
finalize - это метод. Перед сборкой мусора исполняющая система вызывает его метод finalize (). Вы можете написать код освобождения системных ресурсов в методе finalize () перед сборкой мусора.
1. Заключительный
• Final используется для наложения ограничений на класс, метод и переменную. • Конечный класс не может быть унаследован, конечный метод не может быть переопределен, а конечное значение переменной не может быть изменено. • Конечные переменные инициализируются во время создания, за исключением случая пустой конечной переменной, которая инициализируется в Конструкторе. • Final - ключевое слово.
2. Наконец
• Наконец, используется для обработки исключений вместе с попыткой и отловом. • Он будет выполняться независимо от того, обработано ли исключение или нет. • Этот блок используется для закрытия ресурсов, таких как соединение с базой данных, ресурсы ввода-вывода. • Наконец, блок.
3. Завершить
• Finalize вызывается потоком сборки мусора непосредственно перед сбором подходящих объектов для выполнения очистки. • Это последний шанс для объекта выполнить какую-либо очистку, но поскольку не гарантируется, будет ли вызван finalize (), плохая практика - сохранять ресурс до вызова finalize. • Завершить - это метод.
Ответы:
окончательный
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 есть новая попытка с оператором ресурсов , который можно использовать для автоматического закрытия ресурсов, которые явно или неявно реализуют java.io.Closeable или java.lang.AutoCloseable
завершить
finalize
вызывается, когда объект собирается сборщиком мусора. Вам редко нужно его отменять. Пример:protected void finalize() { //free resources (e.g. unallocate memory) super.finalize(); }
источник
Object#finalize()
метод устарел в Java 9 ( JDK-8165641 ).источник
Последнее ключевое слово используется для объявления констант.
final int FILE_TYPE = 3;
Ключевое слово finally используется в операторе try catch для указания блока кода, который должен выполняться независимо от выданных исключений.
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/
Вы пытались выполнить поиск в Google и нуждаетесь в пояснении?
источник
final: final - ключевое слово. Переменная, объявленная как final, должна быть инициализирована только один раз и не может быть изменена. Классы Java, объявленные как final, не могут быть расширены. Методы, объявленные как final, не могут быть переопределены.
наконец: наконец-то блок.Блок finally всегда выполняется при выходе из блока try. Это гарантирует выполнение блока finally даже в случае возникновения непредвиденного исключения. Но наконец, он полезен не только для обработки исключений - он позволяет программисту избежать случайного обхода кода очистки при возврате, продолжении или прерывании. Помещение кода очистки в блок finally всегда является хорошей практикой, даже если не ожидается никаких исключений.
завершить: finalize - это метод. Перед сборкой мусора исполняющая система вызывает его метод finalize (). Вы можете написать код освобождения системных ресурсов в методе finalize () перед сборкой мусора.
источник
1. Заключительный • Final используется для наложения ограничений на класс, метод и переменную. • Конечный класс не может быть унаследован, конечный метод не может быть переопределен, а конечное значение переменной не может быть изменено. • Конечные переменные инициализируются во время создания, за исключением случая пустой конечной переменной, которая инициализируется в Конструкторе. • Final - ключевое слово.
2. Наконец • Наконец, используется для обработки исключений вместе с попыткой и отловом. • Он будет выполняться независимо от того, обработано ли исключение или нет. • Этот блок используется для закрытия ресурсов, таких как соединение с базой данных, ресурсы ввода-вывода. • Наконец, блок.
3. Завершить • 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, всегда будет выполняться. Смысл доработки:
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(); }}
перед вызовом сборщика мусора.
источник