• Java
    • JAXB Tutorial
      • What is JAXB
      • JAXB Marshalling Example
      • JAXB UnMarshalling Example
  • Spring Tutorial
    • Spring Core Tutorial
    • Spring MVC Tutorial
      • Quick Start
        • Flow Diagram
        • Hello World Example
        • Form Handling Example
      • Handler Mapping
        • BeanNameUrlHandlerMapping
        • ControllerClassNameHandlerMapping
        • SimpleUrlHandlerMapping
      • Validation & Exception Handling
        • Validation+Annotations
        • Validation+ResourceBundle
        • @ExceptionHandler
        • @ControllerAdvice
        • Custom Exception Handling
      • Form Tag Library
        • Textbox Example
        • TextArea Example
        • Password Example
        • Dropdown Box Example
        • Checkboxes Example
        • Radiobuttons Example
        • HiddenValue Example
      • Misc
        • Change Config file name
    • Spring Boot Tutorial
  • Hibernate Tutorial
  • REST Tutorial
    • JAX-RS REST @PathParam Example
    • JAX-RS REST @QueryParam Example
    • JAX-RS REST @DefaultValue Example
    • JAX-RS REST @Context Example
    • JAX-RS REST @MatrixParam Example
    • JAX-RS REST @FormParam Example
    • JAX-RS REST @Produces Example
    • JAX-RS REST @Consumes Example
    • JAX-RS REST @Produces both XML and JSON Example
    • JAX-RS REST @Consumes both XML and JSON Example
  • Miscellaneous
    • JSON Parser
      • Read a JSON file
      • Write JSON object to File
      • Read / Write JSON using GSON
      • Java Object to JSON using JAXB
    • CSV Parser
      • Read / Write CSV file
      • Read/Parse/Write CSV File – OpenCSV
      • Export data into a CSV File
      • CsvToBean and BeanToCsv – OpenCSV

JavaInterviewPoint

Java Development Tutorials

Top 8 Java Interview Questions On main() Method

June 25, 2018 by javainterviewpoint Leave a Comment

Execution of a Java application starts with the main() method, this is one of an important Java interview questions for both freshers and experienced. In this article, we will discuss some of the possible java interview questions on main() method.

1.  Why main method is public static ?

If main() method is declared non-static then JVM (Java virtual Machine) cannot call it without creating instance of the class which contains the main() method.

While creating instance ambiguity might arises when the constructor takes argument as which one to call.

public class Test
{
    
    public Test (int a)
    {
        //One argument constructor
    }
    public Test (int a, int b)
    {
      //Two arguments constructor
    }
    public void main(String[] args)
    {
        //Non Static main method
    }
}

2. can we overload main method in Java ?

Yes, we can overload main method in Java but the execution will start from the main() method with signature “public static void main(String[] args)” or“public static void main(String args…)”
Java Interview Questions On main() Method

import java.util.Arrays;

public class Test
{
    /** Actual main method with String[] args**/
    public static void main(String[] args)
    {
        System.out.println("String[] args main method called");
        main(new Double[] {1.0, 2.0, 3.0});
    }

    /** Overloaded main method with Double[] args**/
    public static void main(Double[] args)
    {
        System.out.println("Double[] args main method called");
        System.out.println(Arrays.toString(args));
    }
}

Once when we run the above code we will get the below output

String[] args main method called
Double[] args main method called
[1.0, 2.0, 3.0]

This clearly tells you that you can overload a main() method in java.

3. Can we override main method in Java ?

No, we cannot override main method in Java, because main() method is declared as static and you are not allowed to override a static method in java. It does not makes sense to “override” it, since the concept of “overriding” is only for instance methods.

4.  What will happen if we declare main() method as non-static ?

If you declare a main() method as non-static the compilation will be successful but it will throw a Runtime error

public class Test
{
    /** Non Static main method with String[] args**/
    public void main(String[] args)
    {
        System.out.println("String[] args main method called");
    }
}

Output

Error: Main method is not static in class Test, please define the main method as:
   public static void main(String[] args)

5. Can we define a class without main method ?

No, We cannot define a class without main() method starting from Java 7. In previous release of Java we can have Static Initalizers as an alternative

public class Test
{
    static
    {
        System.out.println("Static Initalizer");
        System.exit(0);
    }
}

Output: (From JDK 7)

Error: Main method not found in class Test, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

Output: (JDK 6)

Static Initalizer

6. Can we declare main() method with different access modifier other than public ?

No, main() method cannot have any access modifier other public, if you use private, protected or default access modifier the compilation will be fine but it will throw Runtime error.

Error: Main method not found in class Test, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

7. Can we make main final in Java ?

Yes, you can make the main() method final

8. Can we change return type of main() method ?

No, you cannot change the return type of a main() method, it must be void. If you change the return type then we will get a Runtime error “Main method must return a value of type void in class”

public class Test
{
    /** static main method returning int**/
    public static int main(String[] args)
    {
        System.out.println("String[] args main method called");
        return 1;
    }
}

Output:

Error: Main method must return a value of type void in class Test, please 
define the main method as:
   public static void main(String[] args)

Filed Under: Core Java, Java, Java Interview Tagged With: Java Interview, Java Interview Question, Java Interview Questions, Java Interview Questions On main() Method, main() Method

Leave a Reply Cancel reply

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.

Java Basics

  • JVM Architecture
  • Object in Java
  • Class in Java
  • How to Set Classpath for Java in Windows
  • Components of JDK
  • Decompiling a class file
  • Use of Class.forName in java
  • Use Class.forName in SQL JDBC

Oops Concepts

  • Inheritance in Java
  • Types of Inheritance in Java
  • Single Inheritance in Java
  • Multiple Inheritance in Java
  • Multilevel Inheritance in Java
  • Hierarchical Inheritance in Java
  • Hybrid Inheritance in Java
  • Polymorphism in Java – Method Overloading and Overriding
  • Types of Polymorphism in java
  • Method Overriding in Java
  • Can we Overload static methods in Java
  • Can we Override static methods in Java
  • Java Constructor Overloading
  • Java Method Overloading Example
  • Encapsulation in Java with Example
  • Constructor in Java
  • Constructor in an Interface?
  • Parameterized Constructor in Java
  • Constructor Chaining with example
  • What is the use of a Private Constructors in Java
  • Interface in Java
  • What is Marker Interface
  • Abstract Class in Java

Java Keywords

  • Java this keyword
  • Java super keyword
  • Final Keyword in Java
  • static Keyword in Java
  • Static Import
  • Transient Keyword

Miscellaneous

  • newInstance() method
  • How does Hashmap works internally in Java
  • Java Ternary operator
  • How System.out.println() really work?
  • Autoboxing and Unboxing Examples
  • Serialization and Deserialization in Java with Example
  • Generate SerialVersionUID in Java
  • How to make a class Immutable in Java
  • Differences betwen HashMap and Hashtable
  • Difference between Enumeration and Iterator ?
  • Difference between fail-fast and fail-safe Iterator
  • Difference Between Interface and Abstract Class in Java
  • Difference between equals() and ==
  • Sort Objects in a ArrayList using Java Comparable Interface
  • Sort Objects in a ArrayList using Java Comparator

Follow

  • Coding Utils

Useful Links

  • Spring 4.1.x Documentation
  • Spring 3.2.x Documentation
  • Spring 2.5.x Documentation
  • Java 6 API
  • Java 7 API
  • Java 8 API
  • Java EE 5 Tutorial
  • Java EE 6 Tutorial
  • Java EE 7 Tutorial
  • Maven Repository
  • Hibernate ORM

About JavaInterviewPoint

javainterviewpoint.com is a tech blog dedicated to all Java/J2EE developers and Web Developers. We publish useful tutorials on Java, J2EE and all latest frameworks.

All examples and tutorials posted here are very well tested in our development environment.

Connect with us on Facebook | Privacy Policy | Sitemap

Copyright ©2023 · Java Interview Point - All Rights Are Reserved ·