Explain the concept of variable shadowing in Java (Core Java Interview Question #156)