title: Java List and ArrayList declaration
body: <p>Can someone explain the following code to me. As in why is "List" and "ArrayList" are 
  not the same? Does this mean that the variable neighborColumns is a List data structure that holds type Column objects but only public methods from class List can be used on variable neighborColumns? thanks in advance.</p>
  
  <pre><code>List&lt;Column&gt; neighborColumns = new ArrayList&lt;Column&gt;();
  </code></pre>