Пусть N это N-ое число Фибоначчи, при вычислении которого возникает переполнение стека вызовов, а K это K-ое число Фибоначчи, которое будет вычислено успешно.
public static void main(String[] args) {
try {
fib(N);
} catch (StackOverflowError e) {
fib(K);
}
}
public static long fib(long n) {
if(n == 0) return 0;
if(n == 1) return 1;
return fib(n - 2) + fib(n - 1);
}
При первом вызове fib(N) стек переполняется, так почему же становится возможным дальнейший вызов fib(K) при переполненным стеке?
Исключение всплывёт через все кадры стека, завершая выполнение соответствующих вызовов. Следовательно, в момент срабатывания блока catch
в стеке будет только кадр метода main
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
я уже готовлюсь выложить приложение в Google Play и теперь мне надо защитить свое приложение от взлома и дрЯ уже настроил Proguard, обфускация работает
Имеется таскНужно реализовать многопоточное приложение, без использования synchronized
При использовании AssertassertEquals падает тест, из-за того что после листа expected добавляется пробел(непонятно почему)