I read this in Kathy Sierra's book:
"Local variables are sometimes called stack, temporary, automatic, or method variables, but the rules for these variables are the same regardless of what you call them."
Why are the local variables called automatic?
Local variables automatically cease to exist when the execution of the block in which they are declared completes.
{
int a = some_initialisation_value;
....
}
// a automatically vanishes here.