Интервьюер спросил меня, что
Как вы можете реализовать класс Foo, где вы сможете рассчитывать экземпляры этого класса. Есть больше потоков, которые создают экземпляр этого класса Foo.
Я ответил, что со следующим кодом
public class Foo {
private static int count = 0;
public Foo() {
incrementCount();
}
public void incrementCount() {
synchronize (Foo.class) {
count++;
}
}
}
Она снова спросила меня, что
Если поток заканчивается, счетчик должен быть декрементом, как вы можете это сделать?
Я не ответил на этот вопрос.
Я знаю о методе finalize()
, но зависит от Garbage collector
, что при вызове этого метода, даже если мы переопределим finalize()
.
У меня пока нет решения, можете ли вы это объяснить?