11.3.4 The use of the futuro II (futuro anteriore)
The futuro anteriore describes, as the English future II as well, an event as finished in the future. Constructions of this kind are necessary to express that an event will have finished in the future before something else will happen.
example
Avranno già mangiato quando arriveremo.
They already will have eaten when we arrive.
It is rarely mentioned, if not never, in grammar books, but very often the present perfect is used to describe something that will happen in the future.
By the time we have finished, everyone will have eaten.
It's pretty clear that they don't have finished their work yet and that with "we have finished" the speaker refers to something that is going to happen in the future. This kind of use of the present perfect is something that all Germanic languages has in common, but doesn't work for romance languages.
In Italian this kind of use of the passato prossimo is never possible. To describe something that will happen in the future, a future tense must be used, the present or the verbal periphrases andare + infinitivo (Vado a ballare = I will dance).
example
Quando avrà finito il suo lavoro, verrà.
After he has finished his work, he will come.
If you speak Spanish there is another pitfall for you. After the temporal conjunction cuando / quando / when the future can never be used in Spanish to describe an event that will happen in the future. (wrong: ~Cuando estará aquí, se lo preguntaré~, correct: Cuando esté aquí, se lo preguntaré => When he has arrived, I will ask him.) But in Italian the future can be used in this case and the congiuntivo is wrong in this circumstances.
Italian: Quando sarà venuto, potremo andare.
Spanish: Cuando haya venido, podemos andarnos.
In Italian the congiuntivo is never used after quando in these circumstances.
Concerning the future the following situations can be distinguished.
The event / action described in the main clause will happen after the event described in the subordinate clause is finished.
a) Mi chiamerà quando sarà arrivato.
He will call me, after he has arrived.
The action / event described in the main clause has already happened and the action / event described in the subordinate clause will follow.
b) Mi avrà chiamato quando arriverò.
The event / action described in the main clause will have already happened when he will arrive.
Beside that the futuro semplice as well as the futuro anteriore can express doubt about an event / action that had happened IN THE PAST. This supposes obviously that everyone participating in the discussion knows that they are talking about a presumption that refers to something happened in the past and not about the future.
examples
Avrà speso tutto i suoi soldi, per questo ci ha chiamato.
He may have spent all his money, that' s why he called.