вторник, 18 сентября 2007 г.

Java Puzzle 45: Exhausting Workout

Проверяются знания рекурсии. Что делает следующая программа?
public class Workout {
    public static void main(String[] args) {
        workHard();
        System.out.println("It's nap time.");
    }
    private static void workHard() {
        try {
            workHard();
        } finally {
            workHard();
        }
    }
}
Забавно, но если метод будет вызывать сам себя, то вы достаточно быстро получите StackOverflowError. Но если использовать блоки try-finally, как в примере, то на ожидание StackOverflowError уйдет 10291 лет. Можно сказать

Комментариев нет:

Отправить комментарий