title: Why can't we just use arrays instead of varargs?
body: <p>I just came across <code>varargs</code> while learning android(<code>doInBackground(Type... params)</code>) ,<em>SO</em> posts clarified the use of it</p>
  
  <p>My question is why can't we just use Arrays instead of <code>varargs</code></p>
  
  <pre><code>public void foo(String...strings) {  }
  </code></pre>
  
  <p>I can replace this type of a call by packing my variable number of arguments in an array and passing it to a method such as this</p>
  
  <pre><code>public void foo(String[] alternativeWay){  }
  </code></pre>
  
  <p>Also does <code>main(String[] args)</code> in java use <code>varargs</code> , if not how are we able to pass runtime parameters to it </p>
  
  <p>Please suggest the benefits or use of <code>varargs</code> and is there there anything else important to know about <code>varargs</code></p>