Top 75 Java Interview Questions You Must Prepare in 2018: (HTTPS://WWW - Edureka.co/blog/all/)
Top 75 Java Interview Questions You Must Prepare in 2018: (HTTPS://WWW - Edureka.co/blog/all/)
We have compiled a list of top Java interview questions which are classified into 7 sections, we will go
through each one of them in the following sequence:
As a Java professional, it is essential to know the right buzzwords, learn the right technologies and
prepare the right answers to commonly asked Java Interview Questions. Here’s a definitive list of top
Java Interview Questions that will guarantee a breeze-through to the next level.
So let’s get started with the first set of basic Java Interview Questions.
     Specification: It is a document that describes the implementation of the Java virtual machine. It
     is provided by Sun and other companies.
     Implementation: It is a program that meets the requirements of JVM specification.
     Runtime Instance: An instance of JVM is created whenever you write a java command on the
     command prompt and run the class.
JRE (Java Runtime Environment) : JRE refers to a runtime environment in which java bytecode can
be executed. It implements the JVM (Java Virtual Machine) and provides all the class libraries and other
support files that JVM uses at runtime. So JRE is a software package that contains what is required to
run a Java program. Basically, it’s an implementation of the JVM which physically exists.
JDK(Java Development Kit) : It is the tool necessary to compile, document and package Java
programs. The JDK completely includes JRE which contains tools for Java programmers. The Java
Development Kit is provided free of charge. Along with JRE, it includes an interpreter/loader, a
compiler (javac), an archiver (jar), a documentation generator (javadoc) and other tools needed in
Java development. In short, it contains JRE + development tools.
Refer to this below image and understand how exactly these components reside:
main: It is the name of the method which is searched by JVM as a starting point for an application with
a particular signature only. It is the method where the main execution occurs.
   1. Default constructor
   2. Parameterized constructor
Q7. What is singleton class and how can we make a class singleton?
Singleton class is a class whose only one instance can be created at any given time, in one JVM. A class
can be made singleton by making its constructor private.
Array List does not define the increment size. Vector defines the increment size.
Array List can only use Iterator for traversing     Except Hashtable, Vector is the only other class which
an Array List.                                      uses both Enumeration and Iterator.
Q10. What are the differences between Heap and Stack Memory?
The major difference between Heap and Stack memory are:
                    Stack memory is used only by one          Heap memory is used by all the parts of the
      Memory
                    thread of execution.                      application.
                    Stack memory can’t be accessed by         Objects stored in the heap are globally
         Access
                    other threads.                            accessible.
                    Exists until the end of execution of the Heap memory lives from the start till the end
      Lifetime
                    thread.                                  of application execution.
In case you are facing any challenges with these java interview questions, please comment your
problems in the section below. Apart from this Java Interview Questions Blog, if you want to get trained
from professionals on this technology, you can opt for a structured training from edureka! Click below
to know more.
                                         (https://www.edureka.co/java-
                                               j2ee-soa-training)
Compile time polymorphism is method overloading whereas Runtime time polymorphism is done using
inheritance and interface.
      1   class Car {
      2   void run()
      3   {
      4   System.out.println(“car is running”);
      5   }
      6   }
      7   class Audi extends Car {
      8   void run()
      9   {
     10   System.out.prinltn(“Audi is running safely with 100km”);
     11   }
     12   public static void main(String args[])
     13   {
     14   Car b= new Audi();    //upcasting
     15   b.run();
     16   }
     17   }
  1    class Adder {
  2    Static int add(int a, int b)
  3    {
  4    return a+b;
  5    }
  6    Static double add( double a, double b)
  7    {
  8    return a+b;
  9    }
 10    public static void main(String args[])
 11    {
 12    System.out.println(Adder.add(11,11));
 13    System.out.println(Adder.add(12.3,12.6));
 14    }}
Method Overriding:
      In Method Overriding, sub class have the same method with same name and exactly the same
      number and type of parameters and same return type as a super class.
      Method Overriding is to “Change” existing behavior of method.
      It is a run time polymorphism.
      The methods must have same signature.
      It always requires inheritance in Method Overriding.
  1    class Car {
  2    void run(){
  3    System.out.println(“car is running”);
  4    }
  5    Class Audi extends Car{
  6    void run()
  7    {
  8    System.out.prinltn(“Audi is running safely with 100km”);
  9    }
 10    public static void main( String args[])
 11    {
 12    Car b=new Audi();
 13    b.run();
 14    }
 15    }
     1   class Base {
     2   private static void display() {
     3   System.out.println("Static or class method    from Base");
     4   }
     5   public void print() {
     6   System.out.println("Non-static or instance    method from Base");
     7   }
     8   class Derived extends Base {
     9   private static void display() {
    10   System.out.println("Static or class method    from Derived");
    11   }
    12   public void print() {
    13   System.out.println("Non-static or instance    method from Derived");
    14   }
    15   public class test {
    16   public static void main(String args[])
    17   {
    18   Base obj= new Derived();
    19   obj1.display();
    20   obj1.print();
    21   }
    22   }
                         The problem with multiple inheritance is that if multiple parent classes have a
                         same method name, then at runtime it becomes difficult for the compiler to
                         decide which method to execute from the child class.
In case you are facing any challenges with these java interview questions, please comment your
problems in the section below. Apart from this Java Interview Questions Blog, if you want to get trained
from professionals on this technology, you can opt for a structured training from edureka! Click below
to know more.
                                      (https://www.edureka.co/java-
                                            j2ee-soa-training)
Q2. What are the differences between Get and Post methods?
                         Get                                                 Post
Li it d         t fd t         b    tb        d t   L               t fd t     b     tb         d t i
    Limited amount of data can be sent because data Large amount of data can be sent because data is
    is sent in header.                              sent in body.
Not Secured because data is exposed in URL bar. Secured because data is not exposed in URL bar.
Idempotent Non-Idempotent
It is more efficient and used than Post It is less efficient and used
1.void forward()
2.void include()
 
Q4. What are the differences between forward() method and sendRedirect()
methods?
               Forward() method                               SendRedirect() method
forward() sends the same request to another         sendRedirect() method sends new request always
resource.                                           because it uses the URL bar of the browser.
forward() method works at server side. sendRedirect() method works at client side.
   1. Servlet is loaded
   2. Servlet is instantiated
   3. Servlet is initialized
   4. Service the request
   5. Servlet is destroyed
                 ServletConfig                                     ServletContext
                                                   It represent whole web application running on
Servlet config object represent single servlet
                                                   particular JVM and common for all the servlet
Its like local parameter associated with           Its like global parameter associated with whole
particular servlet                                 application
getServletConfig() method is used to get the       getServletContext() method is used to get the
config object                                      context object.
for example shopping cart of a user is a specific To get the MIME type of a file or application session
to particular user so here we can use servlet     related information is stored using servlet context
config                                            object.
   1. User Authentication
   2. HTML Hidden Field
   3. Cookies
   4. URL Rewriting
   5. Session Management API
In case you are facing any challenges with these java interview questions, please comment your
problems in the section below. Apart from this Java Interview Questions Blog, if you want to get trained
from professionals on this technology, you can opt for a structured training from edureka! Click below
to know more.
                                      (https://www.edureka.co/java-
                                            j2ee-soa-training)
Interfaces:
     Connection
     Statement
     PreparedStatement
     ResultSet
     ResultSetMetaData
     DatabaseMetaData
     CallableStatement etc.
Classes:
     DriverManager
     Blob
     Clob
     Types
     SQLException etc.
You should use execute() method only when you are not sure about the type of statement else use
executeQuery or executeUpdate method.
In case you are facing any challenges with these java interview questions, please comment your
problems in the section below. Apart from this Java Interview Questions Blog, if you want to get trained
from professionals on this technology, you can opt for a structured training from edureka! Click below
to know more.
                                      (https://www.edureka.co/java-
                                            j2ee-soa-training)
     @Required
     @Autowired
     @Qualifier
     @Resource
     @PostConstruct
     @PreDestroy
Q4. Explain Bean in Spring and List the different Scopes of Spring bean.
Beans are objects that form the backbone of a Spring application. They are managed by the Spring IoC
container. In other words, a bean is an object that is instantiated, assembled, and managed by a
Spring IoC container.
     Singleton: Only one instance of the bean will be created for each container This is the default
     Singleton: Only one instance of the bean will be created for each container. This is the default
     scope for the spring beans. While using this scope, make sure spring bean doesn’t have shared
     instance variables otherwise it might lead to data inconsistency issues because it’s not thread-
     safe.
     Prototype: A new instance will be created every time the bean is requested.
     Request: This is same as prototype scope, however it’s meant to be used for web applications. A
     new instance of the bean will be created for each HTTP request.
     Session: A new bean will be created for each HTTP session by the container.
     Global-session: This is used to create global session beans for Portlet applications.
ContextLoaderListener, on the other hand, is the listener to start up and shut down the
WebApplicationContext in Spring root. Some of its important functions includes tying up the lifecycle of
Application   Context   to   the   lifecycle   of   the   ServletContext   and   automating   the   creation   of
ApplicationContext.
Q6. What are the differences between constructor injection and setter injection?
No.                   Constructor Injection                                     Setter Injection
    2)    Desn’t override the setter property               Overrides the constructor property if both are defi
                                                            Doesn’t create new instance if you change the pro
    3)    Creates new instance if any modification occurs
                                                            value
    4)    Better for too many properties                    Better for few properties.
Controller Based:
We can define exception handler methods in our controller classes. All we need is to annotate these
methods with @ExceptionHandler annotation.
Exception Handling is a cross-cutting concern and Spring provides @ControllerAdvice annotation that
we can use with any class to define our global exception handler.
HandlerExceptionResolver implementation:
For generic exceptions, most of the times we serve static pages. Spring Framework provides
HandlerExceptionResolver interface that we can implement to create global exception handler. The
reason behind this additional way to define global exception handler is that Spring framework also
provides default implementation classes that we can define in our spring bean configuration file to get
spring framework exception handling benefits.
Q9. What are some of the important Spring annotations which you have used?
Some of the Spring annotations that I have used in my project are:
@RequestMapping – for configuring URI mapping in controller handler methods. This is a very
important annotation, so you should go through Spring MVC RequestMapping Annotation Examples
@ResponseBody – for sending Object as response, usually for sending XML or JSON data as response.
@PathVariable – for mapping dynamic values from the URI to handler method arguments.
@Qualifier – with @Autowired annotation to avoid confusion when multiple instances of bean type is
present.
AspectJ annotations for configuring aspects and advices, @Aspect, @Before, @After, @Around,
@Pointcut etc.
Also Spring ORM provides support for using Spring declarative transaction management, so you should
utilize that rather than going for hibernate boiler-plate code for transaction management.
In case you are facing any challenges with these java interview questions, please comment your
problems in the section below. Apart from this Java Interview Questions Blog, if you want to get trained
from professionals on this technology, you can opt for a structured training from edureka! Click below
to know more.
                                      (https://www.edureka.co/java-
                                            j2ee-soa-training)
Hibernate provides reference implementation of Java Persistence API, that makes it a great choice as
ORM tool with benefits of loose coupling. We can use Hibernate persistence API for CRUD operations.
Hibernate framework provide option to map plain old java objects to traditional database tables with
the use of JPA annotations as well as XML based configuration.
Similarly hibernate configurations are flexible and can be done from XML configuration file as well as
programmatically.
   1. Hibernate eliminates all the boiler-plate code that comes with JDBC and takes care of managing
     resources, so we can focus on business logic.
   2. Hibernate framework provides support for XML as well as JPA annotations, that makes our code
      implementation independent.
   3. Hibernate provides a powerful query language (HQL) that is similar to SQL. However, HQL is fully
      object-oriented and understands concepts like inheritance, polymorphism and association.
   4. Hibernate is an open source project from Red Hat Community and used worldwide. This makes it
      a better choice than others because learning curve is small and there are tons of online
      documentations and help is easily available in forums.
   5. Hibernate is easy to integrate with other Java EE frameworks, it’s so popular that Spring
      Framework provides built-in support for integrating hibernate with Spring applications.
   6. Hibernate supports lazy initialization using proxy objects and perform actual database queries
      only when it’s required.
   7. Hibernate cache helps us in getting better performance.
   8. For database vendor specific feature, hibernate is suitable because we can also execute native sql
      queries.
Overall hibernate is the best choice in current market for ORM tool, it contains all the features that you
will ever need in an ORM tool.
2) get() method always hit the database.                load() method doesn’t hit the database.
3) It returns real object not proxy.                    It returns proxy object.
      It should be used if you are not sure about the
4)                                                      It should be used if you are sure that instance exi
      existence of instance.
     1. Hibernate removes a lot of boiler-plate code that comes with JDBC API, the code looks more
      cleaner and readable.
     2. Hibernate supports inheritance, associations and collections. These features are not present with
      JDBC API.
     3. Hibernate implicitly provides transaction management, in fact most of the queries can’t be
        executed outside transaction. In JDBC API, we need to write code for transaction management
        using commit and rollback.
     4. JDBC API throws SQLException that is a checked exception, so we need to write a lot of try-catch
        block code. Most of the times it’s redundant in every JDBC call and used for transaction
        management. Hibernate wraps JDBC exceptions and throw JDBCException or HibernateException
            h k d        ti          d ’t    d t    it   d t h dl it Hib         t b ilt i t        ti
      un-checked exception, so we don’t need to write code to handle it. Hibernate built-in transaction
      management removes the usage of try-catch blocks.
   5. Hibernate Query Language (HQL) is more object oriented and close to java programming
      language. For JDBC, we need to write native sql queries.
   6. Hibernate supports caching that is better for performance, JDBC queries are not cached hence
      performance is low.
   7. Hibernate provide option through which we can create database tables too, for JDBC tables must
      exist in the database.
   8. Hibernate configuration helps us in using JDBC like connection as well as JNDI DataSource for
      connection pool. This is very important feature in enterprise application and completely missing in
      JDBC API.
In case you are facing any challenges with these java interview questions, please comment your
problems in the section below. Apart from this Java Interview Questions Blog, if you want to get trained
from professionals on this technology, you can opt for a structured training from edureka! Click below
to know more.
                                        (https://www.edureka.co/java-
                                              j2ee-soa-training)
            Object                          Type
1) out                      JspWriter
2) request                  HttpServletRequest
3) response                 HttpServletResponse
4) config                   ServletConfig
5) session                  HttpSession
6) application              ServletContext
 ) pp
7) pageContext                  PageContext
8) page                         Object
9) exception                    Throwable
Q3. What are the differences between include directive and include action?
                 include directive                                     include action
The include directive includes the content at
                                                   The include action includes the content at request time.
page translation time.
The include directive includes the original   The include action doesn’t include the original content
content of the page so page size increases at rather invokes the include() method of Vendor provided
runtime.                                      class.
It’s better for static pages.                      It’s better for dynamic pages.
   1. core tags
   2. sql tags
   3. xml tags
   4. internationalization tags
   5. functions tags
In case you are facing any challenges with these java interview questions, please comment your
problems in the section below. Apart from this Java Interview Questions Blog, if you want to get trained
from professionals on this technology, you can opt for a structured training from edureka! Click below
to know more.
                                       (https://www.edureka.co/java-
                                             j2ee-soa-training)
While exceptions are conditions that occur because of bad input or human error etc. e.g.
FileNotFoundException will be thrown if the specified file does not exist. Or a NullPointerException will
take place if you try using a null reference. In most of the cases it is possible to recover from an
exception (probably by giving user a feedback for entering proper values etc.
   1. try
   2. catch
   3. finally
   4 throw
     4. throw
     5. throws
Q3. What are the differences between Checked Exception and Unchecked
Exception?
Checked Exception
       The classes that extend Throwable class except RuntimeException and Error are known as
       checked exceptions.
       Checked exceptions are checked at compile-time.
       Example: IOException, SQLException etc.
Unchecked Exception
Q4. What purpose does the keywords final, finally, and finalize fulfill?
Final:
Final is used to apply restrictions on class, method and variable. Final class can’t be inherited, final
method can’t be overridden and final variable value can’t be changed. Let’s take a look at the example
below to understand it better.
 1     class FinalVarExample {
 2     public static void main( String args[])
 3     {
 4     final int a=10;   // Final variable
 5     a=50;             //Error as value can't be changed
 6     }
Finally
Finally is used to place important code, it will be executed whether exception is handled or not. Let’s
take a look at the example below to understand it better.
  1      class FinallyExample {
  2      public static void main(String args[]){
  3      try {
  4      int x=100;
  5      }
  6      catch(Exception e) {
  7      System.out.println(e);
  8      }
  9      finally {
 10      System.out.println("finally block is executing");}
 11      }}
 12      }
Finalize
Finalize is used to perform clean up processing just before object is garbage collected. Let’s take a look
at the example below to understand it better.
  1      class FinalizeExample {
  2      public void finalize() {
  3      System.out.println("Finalize is called");
  4      }
  5      public static void main(String args[])
  6      {
  6    {
  7    FinalizeExample f1=new FinalizeExample();
  8    FinalizeExample f2=new FinalizeExample();
  9    f1= NULL;
 10    f2=NULL;
 11    System.gc();
 12    }
 13    }
Throwable is a parent class of all Exception classes. There are two types of Exceptions: Checked
exceptions and UncheckedExceptions or RunTimeExceptions. Both type of exceptions extends Exception
class whereas errors are further classified into Virtual Machine error and Assertion error.
      1. String getMessage() – This method returns the message String of Throwable and the message
        can be provided while creating the exception through it’s constructor.
      2. String getLocalizedMessage() – This method is provided so that subclasses can override it to
         provide locale specific message to the calling program. Throwable class implementation of this
         method simply use getMessage() method to return the exception message.
      3. Synchronized Throwable getCause() – This method returns the cause of the exception or null
         id the cause is unknown.
      4. String toString() – This method returns the information about Throwable in String format, the
         returned String contains the name of Throwable class and localized message.
      5. void printStackTrace() – This method prints the stack trace information to the standard error
         stream, this method is overloaded and we can pass PrintStream or PrintWriter as argument to
         write the stack trace information to the file or stream.
Q10. What is a finally block? Is there a case when finally will not execute?
Finally block is a block which always execute a set of statements. It is always associated with a try
block regardless of any exception that occurs or not.
Yes, finally will not be executed if the program exits either by calling System.exit() or by causing a fatal
error that causes the process to abort.
 Q12. Can we write multiple catch blocks under single try block?
Yes we can have multiple catch blocks under single try block but the approach should be from specific
to general. Let’s understand this with a programmatic example.
   1. String getMessage() – This method returns the message String about the exception . The
      message can be provided through its constructor.
   2. public StackTraceElement[] getStackTrace() – This method returns an array containing each
      element on the stack trace. The element at index 0 represents the top of the call stack whereas
      the last element in the array represents the method at the bottom of the call stack.
   3. Synchronized Throwable getCause() – This method returns the cause of the exception or null
      id as represented by a Throwable object.
   4. String toString() – This method returns the information in String format. The returned String
      contains the name of Throwable class and localized message.
   5. void printStackTrace() – This method prints the stack trace information to the standard error
     stream.
In case you are facing any challenges with these java interview questions, please comment your
problems in the section below. Apart from this Java Interview Questions Blog, if you want to get trained
from professionals on this technology, you can opt for a structured training from edureka! Click below
to know more.
                                           (https://www.edureka.co/java-
                                                  j2ee-soa-training)
So this brings us to the end of the Java interview questions blog. The topics that you learnt in this Java
Interview Questions blog are the most sought-after skill sets that recruiters look for in a Java
Professional. These set of Java Interview Questions will definitely help you ace your job interview.
Good luck for your interview!
Got a question for us? Please mention it in the comments section of this Java Interview Questions blog
and we will get back to you as soon as possible.
                                
                                      (https://plus.google.com/share?
                             (https://www.linkedin.com/shareArticle?
                    (https://twitter.com/intent/tweet?
           (https://www.facebook.com/sharer.php?
                                      url=https://www.edureka.co/blog/interview-
                             mini=true&url=https://www.edureka.co/blog/interview-
                    url=https://www.edureka.co/blog/interview-
           u=https://www.edureka.co/blog/interview-
                    questions/java- questions/java-
           questions/java-   questions/java-
                    interview-
           interview-                 interview-
                             interview-
Share on                              questions/)
                             questions/)
                    questions/)
           questions/)
      PREVIOUS                                                                                NEXT 
Related Posts
Comments 12 Comments
        Neha
        Question no 13 of exception where question says some methods of Exception class , toString() is
        method of Object class not of Exception class. Throwable class override this method from Object
        class. EdurekaSupport
               Throwable is parent of Exception class, that’s why Exception is able to use it. Correct it.
               Hey Neha, thak you for pointing this out. We will definitely look into this. Cheers :)
        Poonam
        Hi,
        Kindly provide explanation for DAO and parallel programming implementation in java.
        Bhargav Patel
        Hi.
        Section OOPS Java Interview Questions:
        Q5 example   is not valid in terms of syntax you missed curly braces.
              EdurekaSupport
              Hey Bhargav, this was mostly probably a typo. We regret the mistake and thank you for
              pointing it out. Do browse through our other blogs and let us know how you liked it. Cheers :)
        Maignanamgnanavel Maignanam
        what are the modifiers applicable in java main method
        harshit rastogi
        thanks for articles. I found few more concepts covered at http://java-questions.com (http://java-
        questions.com)
          Johny Herl
          The Spring Framework is a lightweight framework for developing Java enterprise applications. It
          provides high performing, easily testable and reusable code. Spring handles the infrastructure as the
          underlying framework so that you can focus on your application.Spring is modular in design,
          handling and linking of individual components so much easier. Spring implements Model View
          Container(MVC) design pattern.
          spring mvc form example (http://java.candidjava.com/tutorial/Spring-4-mvc-form-example-using-
          eclipse-and-maven.htm)
          Red Rajesh
          thank you need sum advance concept
          Red Rajesh
          explain very well excepted with image good
Related Blogs
(https://www.e
oriented-
programming
(https://www.e
tutorial/)
(https://www.e
is-java/)
Enter Email
                                                         SUBSCRIBE
                                                
© 2014 Brain4ce Education Solutions Pvt. Ltd.