Simple progarm of java

We can write a simple hello java program easily after installing the JDK.
To create a simple java program, you need to create a class that contains main method.
Let's understand the requirement first.

Required for Hello Java Example

  • install the JDK if you don't have installed it, download the JDK and install it.
  • set path of the jdk/bin directory.
  • create the java program
  • compile and run the java program
  • Creating hello java example
    class Simple{  
    public static void main(String args[]) {  
    System.out.println("Hello Java");  
        }  
    	} 
    
    save this file as Simple.java
    To compile: javac Simple.java
    To execute: java Simple
    Output:
    Hello java

    Understand first java program

    see what is the meaning of class, public, static, void, main, String[], System.out.println().
  • class
  • keyword is used to declare a class in java.
  • public
  • keyword is an access modifier which represents visibility, it means it is visible to all.
  • static
  • is a keyword, if we declare any method as static, it is known as static method. The core advantage of static method is that there is no need to create object to invoke the static method. The main method is executed by the JVM, so it doesn't require to create object to invoke the main method. So it saves memory.
  • void
  • is the return type of the method, it means it doesn't return any value.
  • main
  • represents startup of the program.
  • String[] args
  • is used for command line argument. We will learn it later.
  • System.out.println()
  • is used print statement. We will learn about the internal working of System.out.println statement later.

    How many ways can we write a java program

    There are many ways to write a java program.
    By changing sequence of the modifiers, method prototype is not changed.
    see the simple code of main method.
    static public void main(String args[])
    subscript notation in java array can be used after type, before variable or after variable.
    see the different codes to write the main method.
    public static void main(String[] args)  
    public static void main(String []args)  
    public static void main(String args[]) 
    
    You can provide var-args support to main method by passing 3 ellipses (dots)
    see the simple code of using var-args in main method. We will learn about var-args later in Java New Features chapter.
    public static void main(String... args)
    Having semicolon at the end of class in java is optional.
    see the simple code.
    class P{  
    static public void main(String... args){  
    System.out.println("hello Catchmecoder");  
    }  
    };
    

    Valid java main method signature

    public static void main(String[] args)  
    public static void main(String []args)  
    public static void main(String args[])  
    public static void main(String... args)  
    static public void main(String[] args)  
    public static final void main(String[] args)  
    final public static void main(String[] args)  
    final strictfp public static void main(String[] args)
    

    Invalid java main method signature

    public void main(String[] args)  
    static void main(String[] args)  
    public void static main(String[] args)  
    abstract public static void main(String[] args)  
    

    Internal Details of Hello Java Program

    In the previous page, we have learned about the first program, how to compile and how to run the first java program. Here, we are going to learn, what happens while compiling and running the java program. Moreover, we will see some question based on the first program.
    What happens at compile time?

    At compile time, java file is compiled by Java Compiler (It does not interact with OS) and converts the java code into bytecode.
    What happens at runtime?
    At runtime, following steps are performed:

    Classloader: is the subsystem of JVM that is used to load class files.
    Bytecode Verifier:checks the code fragments for illegal code that can violate access right to objects.
    Interpreter: read bytecode stream then execute the instructions.