Lexical scoping is also referred to as Static scoping. As per lexical scoping, a variable will be accessible in the scope in which it is defined. Here, the scope of the variable is determined at compile time.
Let us consider the following example:
public class LexicalScoping { int a = 1; // a has class level scope. So It will be available to be accessed // throughout the class public void sumAndPrint() { int b = 1; int c = a + b; // b and c are local variables of method. These will be accessible // inside the method only } // b and c are no longer accessible }
Variable a will be available throughout the class (let's not consider the difference of static and non-static as of now). However, variables b and c will be available inside the sumAndPrint method only.
Similarly, a variable given inside lambda...