title: How does having a final variable in a foreach loop work
body: <p>Consider this piece of code</p>
  
  <pre><code>public static void main(String[] args) {
      for(final String s : Arrays.asList("a","b","c")){
          System.out.println(s);
      }
  }
  </code></pre>
  
  <p>This code doesn't serve a specific purpose but to demonstrate the usage of <code>final</code> <code>foreach-loop</code> variables.</p>
  
  <p>How does this work ? How can a single variable be <code>final</code> yet it is assigned a different value with each loop. Or is this variable declared multiple times in different scopes\stacks ?</p>