1
1
Fork 0

Пример для finally

This commit is contained in:
Arthur 2020-03-17 17:21:56 +03:00 committed by Enchased Horse
parent 6666fbb895
commit 1a108e0e54
1 changed files with 56 additions and 0 deletions

56
core.md
View File

@ -869,6 +869,62 @@ public class MainClass {
Метод `finalize()` вызывается перед тем как сборщик мусора будет проводить удаление объекта.
Пример:
```java
public class MainClass {
public static void main(String args[]) {
TestClass a = new TestClass();
System.out.println("result of a.a() is " + a.a());
a = null;
System.gc(); // Принудительно зовём сборщик мусора
a = new TestClass();
System.out.println("result of a.a() is " + a.a());
System.out.println("!!! done");
}
}
```
```java
public class TestClass {
public int a() {
try {
System.out.println("!!! a() called");
throw new Exception("");
} catch (Exception e) {
System.out.println("!!! Exception in a()");
return 2;
} finally {
System.out.println("!!! finally in a() ");
}
}
@Override
protected void finalize() throws Throwable {
System.out.println("!!! finalize() called");
super.finalize();
}
}
```
Результат выполнения:
```
!!! a() called
!!! Exception in a()
!!! finally in a()
result of a.a() is 2
!!! a() called
!!! Exception in a()
!!! finally in a()
!!! finalize() called
result of a.a() is 2
!!! done
```
[к оглавлению](#java-core)
## Расскажите про приведение типов. Что такое понижение и повышение типа?