title: Why do methods on arrays have to be static (Java)?
body: <p>I don't understand why methods on arrays, in Java, have to be static. Static methods can only be used on static variables right? So this would mean arrays are static variables, variables shared by a class? But what class would this be?</p>
  
  <p>Can someone help me understand this?</p>
  
  <p>Edit: to be more specific, I am creating methods to act on arrays but if I just write "public int[] expandArr(int[]a, int v)" and I try to use this method in the main method, I get an error saying I can't make a static reference to a non-static method. When I write "public static int[] expandArr(int[]a, int v)" it works then.</p>
  
  <p>I understand you cannot change the size of an array, the method I wrote makes a new array with increased size and copies the first one into it.</p>
  
  <p>Thank you.</p>