DEV Community

Cover image for 👉 The Java main Method: Why It Looks So Weird
Mohamad mhana
Mohamad mhana

Posted on

👉 The Java main Method: Why It Looks So Weird

Introduction

Have you ever opened a fresh Java file and seen this line staring at you?

public static void main(String[] args) {
    // code here
}

Enter fullscreen mode Exit fullscreen mode

It looks… complicated.
Why all these words? Why not just main() like in other languages?

If you’ve ever wondered why the Java main method looks so weird, you’re not alone. In this post, I’ll break it down piece by piece so you’ll never have to memorize it blindly again.

📦 The Role of the main Method

The main method is the entry point of any Java program.
When you run your program, the Java Virtual Machine (JVM) looks for this exact method signature to start execution.

Without it, your code has no starting point.

🔍 Breaking Down the Weirdness

Let’s decode each keyword in public static void main(String[] args) step by step:

  1. public — Access from Anywhere

public means this method is visible to the JVM (and everything else).

If it weren’t public, the JVM couldn’t call it.
Think of it as leaving your front door open for the JVM to enter your program. 🚪

  1. static — No Objects Needed

static means the method belongs to the class, not an object.

The JVM can call it without creating an object first.
Imagine if you had to new an object every time you wanted to run your program — painful!

  1. void — No Return Value

void means the method doesn’t return anything.

The JVM just needs a starting point to run your program — it doesn’t expect a result back.

  1. main — The Name Matters

The JVM specifically looks for a method called main.
If you rename it to start or helloWorld, your program won’t run.

  1. String[] args — Command-Line Data

This is how your program can accept input from the command line.

Example:

public class Main {
    public static void main(String[] args) {
        System.out.println("First argument: " + args[0]);
    }
}
Enter fullscreen mode Exit fullscreen mode

If you run:

java Main hello

Enter fullscreen mode Exit fullscreen mode

👉 Output: First argument: hello

⚡ Why It Looks So Weird (Compared to Other Languages)

In Python, you just write:

print("Hello, world!")

Enter fullscreen mode Exit fullscreen mode

In C, you write:

int main() {
    return 0;
}
Enter fullscreen mode Exit fullscreen mode

But Java is object-oriented from the ground up.
That’s why public static void main(String[] args) has to carry extra keywords — to satisfy Java’s strict rules.

âś… Quick Memory Trick

👉 Public → Let the JVM in
👉 Static → No object needed
👉 Void → Don’t return anything
👉 Main → JVM’s entry point
👉 String[] args → Extra data from the outside world

📚 Further Resources

đź”— Official Java Documentation

đź”— (Geeks For Geeks): Java main() method

Conclusion

Yes, the Java main method looks weird at first.
But once you break it down, each keyword makes perfect sense.

Next time you see it, you’ll know:

Why it has to be public

Why it’s static

Why it returns nothing

And how it handles external data

👉 Your turn: What’s one Java keyword (final, static, super, etc.) that always confused you? Drop it in the comments — maybe I’ll cover it in the next post!

Top comments (0)