Understanding public static void main(String[] args) in Java

In Java programs, the point from where the program starts its execution or simply the entry point of Java programs is the main() method. Hence, it is one of the most important methods of Java and having proper understanding of it is very important.

Most common syntax of main() method:

filter_none

edit
close

play_arrow

link
brightness_4
code

class GeeksforGeeks {
    public static void main(String[] args)
    {
        System.out.println("I am a Geek");
    }
}

chevron_right


I am a Geek

Explanation:
Every word in the public static void main statement has got a meaning to the JVM.

  1. Public: It is an Access modifier, which specifies from where and who can access the method. Making the main() method public makes it globally available. It is made public so that JVM can invoke it from outside the class as it is not present in the current class.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    class GeeksforGeeks {
        private static void main(String[] args)
        {
            System.out.println("I am a Geek");
        }
    }

    chevron_right

    
    

    Error: Main method not found in class, please define the main method as:
    public static void main(String[] args)
    or a JavaFX application class must extend javafx.application.Application
  2. Static: It is a keyword which is when associated with a method, makes it a class related method. The main() method is static so that JVM can invoke it without instantiating the class. This also saves the unnecessary wastage of memory which would have been used by the object declared only for calling the main() method by the JVM.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    class GeeksforGeeks {
        public void main(String[] args)
        {
            System.out.println("I am a Geek");
        }
    }

    chevron_right

    
    

    Error: Main method is not static in class test, please define the main method as:
    public static void main(String[] args)
  3. Void: It is a keyword and used to specify that a method doesn’t return anything. As main() method doesn’t return anything, its return type is void. As soon as the main() method terminates, the java program terminates too. Hence, it doesn’t make any sense to return from main() method as JVM can’t do anything with the return value of it.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    class GeeksforGeeks {
        public static int main(String[] args)
        {
            System.out.println("I am a Geek");
            return 1;
        }
    }

    chevron_right

    
    

    Error: Main method not found in class, please define the main method as:
    public static void main(String[] args)
    or a JavaFX application class must extend javafx.application.Application
  4. main: It is the name of Java main method. It is the identifier that the JVM looks for as the starting point of the java program. It’s not a keyword.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    class GeeksforGeeks {
        public static void myMain(String[] args)
        {
            System.out.println("I am a Geek");
        }
    }

    chevron_right

    
    

    Error: Main method not found in class, please define the main method as:
    public static void main(String[] args)
    or a JavaFX application class must extend javafx.application.Application
  5. String[] args: It stores Java command line arguments and is an array of type java.lang.String class. Here, the name of the String array is args but it is not fixed and user can use any name in place of it.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    class GeeksforGeeks {
        // javac GeeksforGeeks.java
        // java GeeksforGeeks 1 2 3
        public static void main(String[] args)
        {
            for (String elem : args)
                System.out.println(elem);
        }
    }

    chevron_right

    
    

    1
    2
    3


  6. My Personal Notes arrow_drop_up

    Check out this Author's contributed articles.

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




    Article Tags :
    Practice Tags :


    4


    Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.