Question: I am trying to learn Java now and this is the hello world program and it already have started to baffle me. I am used to python and I found [this](http://qatar.cmu.edu/~dfossati/15-121-spring12/resources/Java4Python.pdf) tutorial (ebook) simple and concise for programmers who have python background. 

Hello world program in Java from the book:

```
public class Hello {

public static void main (String[] args) {

     System.out.println("Hello World!");
}
}

```

As the book says, the equivalent code for this in python is:

```
class Hello(object):
  @staticmethod
  def main(args):
     print "Hello World!"

```

I completely understand the python code. However, I have a problem with Java code and I want to be clear before I proceed further so that I get the root knowledge of language in my brain.

The book says (as copied from book):

> 
> ...we have one parameter. The name of the parameter is args however,
>  because everything in Java must have a type we also have to tell the
>  compiler that the value of args is an array of strings. For the moment
>  You can just think of an array as being the same thing as a list in
>  Python. The practical benefitt of declaring that the method main must
>  accept one parameter and the parameter must be a an array of strings
>  is that if you call main somewhere else in your code and and pass it
>  an array of integers or even a single string, the compiler will flag
>  it as an error.
> 
> 
> 

This does not make any sense to me. Why can I not pass anything since my function doesn't require anything? What happens if I just pass (String args).

Since I am completely newbie to Java, please bear with me.

Answer: 
Well, you are passing in something. Whenever you run a java program, command line arguments are passed in as the `args` argument, so you need to accept those, even if you don't use them.
When you execute your programme from command line, Commandline parameter can be more than one string.

eg.

Java myprogramme param1 param2 param3

all this parameters - param1, param2, param3 are passed as string[].

This is common for all program, who pass zero, one or more params. 

As a programmer your responsibility to check those command line params.