Пример для finally
This commit is contained in:
parent
6666fbb895
commit
1a108e0e54
56
core.md
56
core.md
|
@ -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)
|
||||
|
||||
## Расскажите про приведение типов. Что такое понижение и повышение типа?
|
||||
|
|
Loading…
Reference in New Issue