Scroll to top

public static void main(string args[]) Explanation

JVM will always look for a specific method signature to start running an application, and that would be public static void main(String args[]). Here args is an argument of the type String array. String array argument can also be written as String[] args. Though type of the argument(String array) is fixed, you can still change the name from args to anything.

Also with the introduction of java args, instead of writing String args[], String… args can be used.  Keep learning to know more about each and every keyword.

class JBT{
public static void main(String args[])
System.out.println("Hello JBT");

In the above application example, we are using public static void main. Each word has a different meaning and purpose.


It is an Access Modifier, which defines who can access this Method. Public means that this Method will be accessible by any Class(If other Classes can access this Class.).


Static is a keyword that identifies the class-related thing. It means the given Method or variable is not instance-related but Class related. It can be accessed without creating the instance of a Class.


It is used to define the Return Type of the Method. It defines what the method can return. Void means the Method will not return any value.


Main is the name of the Method. This Method name is searched by JVM as a starting point for an application with a particular signature only.

String args[] / String… args

It is the parameter to the main method. The argument name could be anything.

Author avatar


  1. Sanjeevkumar

    Good Explanation…
    Thanking you….

  2. Gaurang

    Please fix your grammatical errors. It makes understanding this content difficult.

  3. Akash Dhande

    Hello Sir ,
    Nice Info wanted to ask what are the parameters does main method takes

  4. Jay

    String args[] : Parameter to main method…

    Please site how to use the main() with values given to parameters (like what the difference would be with (or without) these values).

    • naresh

      If u dont use it shows error in execution….that y we r passing infinite arguments in String type…string is one.type of class ….so,first letter is capital

  5. Shubham Choudhary

    Nice Explanation

  6. Priyokumar

    Why “String[] ags” is passed as parameter of main function and without passing this parameter what will happen?

  7. Pravin

    It’s really nice & understandable words.

  8. abhinay

    Good Article

  9. Achyuth

    i want more explanation. i know this information.

  10. Saydur

    Thank you so much! that’s a good article. I appreciated you

  11. joel

    great article.thnk uu

  12. suresh

    Very Good Explanation Thank you

  13. Divya

    My program still runs if I use other word instead of args in “String[] args”(Parameter to main method). I want to know the reason behind it.

  14. yogi

    good explanation but give me parameters at the same time explanation. i mean which type of parameters in using java.
    and please give me different meanings Hello and hello in java

  15. Sachin


    I want to know why JVM treats main(String [] args) method as a starting point of program, can anyone tell me the internal functioning of this method, like how it gets execute and what threads are required to execute this method so that JVM can understand this method as the starting point of the program.?

    • Shashi

      Suppose you are watching a movie and the scene of movie starts from middle of a story and as you continue watching movie, u need to understand the current scene of movie and for that movie makes gives u a starting part of movie in somewhere middle of movie(Gives you information something like” 15years before ” in movie) reading this words in movie you get to know the starting of movie…
      So likewise u place you main method anywhere in program(inside class) the JVM will read full code in its language to find main() method and starts acknowledging(executing) the code from main method…
      and if you dont provide main() method in code the JVM will not understand the story of your code will give error…

  16. Mother

    The grammar in this article and in the comments is horrendous.

  17. Vinod

    hi can you explain why public static void should write in the same order/sequence as written now.

    • Hi Vinod,

      Public and static keyword position can be changed. There is no such rule of using public before static. But as void is method return type it should come just before method name which is main in this case. Hence this sequence.
      public static void main
      static public void main.

      Both are same. But as a standard we right as in the first case.

  18. fekk tom

    I guess this will useful for me

  19. sapna suryavanshi

    Why we usethis method main(string args())

  20. sapna suryavanshi

    I want list and description of in build classes and their sub classes…like printsteam is class and println() is its method…

  21. Shrikant

    why we pass only string as the parameter of the main method?

  22. Mahesh shinde

    what is array of string

  23. maria

    what is command line argument

  24. Ashwini

    Can you please explain…how internally works these SYSOUT statement??
    System.out.println(“args[” +i+ “]:”+args[i] );
    System.out.println(“args[ i ]:”+args[i] );

  25. venkat

    thank u for update ur information
    i have some cofusion in null point exception
    please send me a link of ur site in null point exception

  26. yaksh

    hello sir if we not use static in with voidmain() how we run void main() function
    without static keyword

    • Vivekanand

      You can write main method without static keyword, there will not be any issue. But it will not work as expected. It will be treated as normal method and in order to execute it you need to call given method explicitly. While static keyword will make this method to be treated as entry point. Hope it clarifies.

  27. Kavitha

    Sir how to call a method how the whole process goes in a program please explain with example

  28. hema

    why we are using string[] args in pubic static void main(String[] args) why we are not using character array or int array i need elabrate answer

  29. Priya

    Main method is very important in java. Program execution starts from main () method only.

  30. vicky

    thank u for the given content\

  31. Ramjan

    Nice One Explanation !!

  32. Ramjan

    What is the meaning of creating an instance of the class ??
    Please reply me.

  33. Ramjan

    What is the meaning of creating an instance of the class ??

  34. Deepika

    Nice explanation….

  35. Priya

    A Java program is a sequence of Java instructions that are executed in a certain order. Since the Java instructions are executed in a certain order, a Java program has a start and an end.

  36. surekha

    Static ss a keyword…..
    what is the ss means

  37. Manish

    you are wrong in main definition like “ss” there we are use “is”

  38. Sachet Abeysinghe

    Hi, I already knew the main method is the entry point of the program and makes it execute the program properly but this explanation is really good for adults and kids. Thank you very much. This helped me a lot for public static void main(String[] args). I appreciated it a lot. I am a seven year old kid and I love programming.

  39. Pratyaditya Singh

    Thanks a lot. Explained in an easy way!!

  40. shri

    public is not access modifier , it is access specifier in java

Post a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.