Java is one of the three core languages that are widely adopted for web application development. Since 1991, Java has gained much traction among developers with its WORA (write once run anywhere) coding principle. As the demand for web-powered apps picks up, Java developers are in high demand and are well remunerated for their skills. Also, Java is a class-based and object-oriented language.
16 common Java interview questions
Are you a candidate preparing for a Java-based interview?
We have compiled these common Java interview questions around the fundamentals of Java, OOPs concepts, as well as abstract, class, and interface to help you impress the panel on your big day.
1. What are the characteristics of object-oriented programing (OOPs) used in Java programming?
Object-oriented programming is a programming approach in which data and their methods are organized into objects. Languages such as C++ and Java are founded on the OOPs approach, making it possible to handle large complex codes effectively. OOPs is based on the following concepts:
- Encapsulation in which data and methods are bundled up into a single unit. This way, the data can only be accessed through the methods defined in the current class. Encapsulation also acts as a protective wrapper, thus preventing data from external access.
- Inheritance is a method in which an object acquires the attributes of another parent object. The underpinning concept of inheritance is the ability to build new classes upon existing ones with the aim of reusing the methods of the parent class.
- Polymorphism is the ability of an object or variable to take many forms. It allows us to perform a single action in several different ways.
- Abstraction is the process by which only the essentials of an object are presented to the user and all other trivial details are hidden from the user. Essentially, only the attributes, methods, and interfaces of an object are exposed, and the implementation details of the object are hidden from the user.
2. Explain the different ways in which inheritance can be restricted in Java
In Java, inheritance can be restricted in the following ways:
- Use the keyword “final” when creating a class
- Using a private constructor in a class
- Declaring the method final by adding the keyword “final” before the method name
3. Outline the differences between an Abstract Class and Interface in Java
Both the abstract class and interface are used to achieve abstraction in Java. Here are the fundamental differences between Abstract Class and Interface. While abstract class allows you to create a method for implementing the subclasses, the interface is the blueprint of the class as it specifies the behavior of the class. Here are fundamental differences between abstract class and interface.
|Can contain abstract and concrete methods||Can only contain abstract methods|
|Can possess members with any access specifiers i.e., public, private, etc||Can only possess a declaration of public static methods with no concrete implementation|
|An abstract class may contain non-final variables||Variables declared in an interface are by default final variables|
|An abstract class can implement interfaces and extend only one abstract class||An interface cannot implement an abstract class|
|Can extend one class or abstract class at a time||Can extend multiple interfaces at a time.|
|The keyword ‘abstract’ is used to declare a method as an abstract||It is not mandatory to use the keywords‘ abstract’ to declare a method as an abstract|
4. Define between an object and a class in Java.
An object, also known as the instance of a class, is an entity created from a class that has a state, behavior, and identity. The state represents the data value of the object, the behavior, the functionality of the object, and identity, the object’s unique value implemented by the JVM (Java Virtual Machine) in reference to the object.
Classes refer to the blueprint or template from which objects are constructed. Thus, classes represent a collection of objects. A class contains variables, constructors, and methods used to define the behavior of an object.
5. Differentiate between a Sub-Class and Inner Class in Java
Also known as a nested class, an inner class is a class that is nested within another class. The class held within is known as the inner/nested class, while the class that hosts is known as the outer class. Thus the inner class can only be accessed by using the outer class (class name or object) as a reference. The purpose of nesting is to group classes or interfaces together based on logic, enable better code maintenance and readability, as well as increase encapsulation.
In Java, classes form a class hierarchy, also referred to as inheritance tree, with the object class as the root or the parent class of the tree. Each class hierarchy has one root class also known as superclass from which classes in the tree inherit their behavior. A subclass inherits the variables and methods of its superclass which are declared by the keyword ‘extends’.
6. Explain the difference between overloading and overriding
Overriding and overloading are two key concepts used to implement polymorphism in Java. overloading refers to a situation in which there are two or more methods with the same name but different properties in the same class.
However, when there are two methods with the same name and properties where one occurs in the child class and the other in the parent class, the situation is known as overriding.
7. What is the role of a ClassLoader in Java?
The ClassLoader is a component of the Java runtime environment that is responsible for loading Java classes dynamically into the Java Virtual Machine (JVM) on demand by an application.
8. Why is a singleton class important in Java?
A singleton class allows only one instance to be created with all the methods and variables belonging to the class thereby limiting the number of objects being created to only one. The singleton class provides one global point to create and access instances within the class through the single object.
A singleton class becomes useful for instance in situations like running the trial version of the software with only one license and one database connection available.
9. Explain exception in Java
An exception is an error that occurs in the course of executing the instructions of the program, which interrupts its normal flow. The exception can be due to a number of reasons including entry of invalid data, network connection failure, hardware failure, or when JVM (Java Virtual Machine) runs out of memory, etc.
There are two types of exceptions in Java which are:
- Checked exceptions, also known as compile-time exceptions, occur during a program’s compile time.
- Unchecked exceptions, also known as runtime exceptions, occur during the execution of a program.
10. What is exception handling in Java?
When an exception occurs, an exception object is created for the JRE (Java Runtime Environment) to identify an exception handler for it. Exception handling in Java refers to the mechanism through which an exception object is passed to a handler code to process the exception in what is known as catching the exception to achieve the normal execution flow of a program.
Exception handling only processes runtime errors.
11. Explain OutOfMemoryError in Java
OutOfMemoryError is a runtime error occurring on the Java Virtual Machine when there is insufficient memory to allocate an object in the Java leap. It is indicated by the java.lang.OutOfMemoryError exception. This error is also thrown when there is insufficient native memory to support the implementation of a Java class.
12. What is the super or base class of exceptions in Java
The superclass for all exceptions in Java is Throwable.
13. What are Java Packages and what is their importance?
A Java package is a collection of related classes and interfaces. Packages are important
- For preventing naming conflict
- As they help modularize code and group code in a way that it can easily be maintained and reused
- As they make it easy to search and use classes, sub-packages, and interfaces
- As they increase/enhance data encapsulation
14. What are constructors in Java and what is their significance?
In Java, when a new object is created, a default constructor is created with the same name as that of the class. A constructor is a code that is used to initialize the state of an object. There are two types of constructors:
- The default constructor. A default constructor is one that is created by the compiler where a constructor has not been defined in a class. It is a no-argument constructor.
- The parameterized constructor. The parameterized constructor has defined values and is capable of initializing an instance of a class with defined values. This constructor can take arguments.
15. Is it possible for a class to have more than one constructor in Java?
A class can have multiple constructors. However, the class that will be used for object creation will be determined by the arguments passed during the creation of the objects.
16. Explain JVM, JRE, and JDK in Java
- JVM (Java Virtual Machine) is the runtime environment specification for Java’s code execution environment. It is based on three notations which are specification, implementation, and runtime instance.
- JRE (Java Runtime Environment) is the runtime environment in which Java bytecode is executed. JRE implements JVM.
- JDK (Java Development Kit) is the tool required to write and package Java programs. JDK contains JRE and development tools.
The level of interview questions you’ll be asked by the panel certainly depends on your experience and the position that you are applying for. Our questions touch on just a few Java topics. Be sure to prepare for questions on data structures and algorithms, multithreading, array, garbage collection, design principles and patterns, networking protocols, and other topics that you’ll find useful based on your experience.