Va in loop infinito perché ogni volta che chiami rvett i vale 0.
Vedi la differenza tra i++ e ++i: nel primo caso prima viene preso il valore di i e poi fatto il +1, nel secondo caso invece prima fai +1 e poi leggi i. Comunque nel tuo caso basta un i + 1
tf è una variabile inutile.
x non ti serve, hai già v.
codice:
public static boolean rvett(int[] array, int currentIndex) {
if (currentIndex == array.length) {
return true;
}
if (array[currentIndex] != 5) {
return false;
}
return rvett(array, currentIndex + 1);
}