Top 100 Java Interview Questions and Answers (2022)
Top 100 Java Interview Questions and Answers (2022)
Ans: An Inner class is a class which is nested within another class. An Inner
class has access rights for the class which is nesting it and it can access all
variables and methods defined in the outer class.
an
A sub-class is a class which inherits from another class called super class.
Sub-class can access all public and protected methods and fields of its super
class.
oh
M
Q2) What are the various access specifiers for Java classes?
Ans: In Java, access specifiers are the keywords used before a class name
which defines the access scope. The types of access specifiers for classes
ss
are:
1) Public: Class,Method,Field is accessible from anywhere.
la
belong.
id
an
A singleton class in java can have only one instance and hence all its
methods and variables belong to just one instance. Singleton class concept is
useful for the situations when there is a need to limit the number of objects for
oh
a class.
The best example of singleton usage scenario is when there is a limit of
M
having only one connection to a database due to some driver limitations or
because of any licensing issues.
ss
Q6) What are Loops in Java? What are three types of loops?
For loops are used in java to execute statements repeatedly for a given
number of times. For loops are used when number of times to execute the
e
execution of statements.
3) Do While Loops
M
Do While Loop is same as While loop with only difference that condition is
checked after execution of block of statements. Hence in case of do while
loop, statements are executed at least once.
an
// Add any loop breaking logic
}
oh
Q8) What is the difference between continue and break statement?
M
Ans: break and continue are two important keywords used in Loops. When a
break keyword is used in a loop, loop is broken instantly while when continue
keyword is used, current iteration is broken and loop continues with next
ss
iteration.
In the below example, Loop is broken when the counter reaches 4.
la
system.out.println(counter);
if (counter == 4) {
e
dl
break;
}
id
}
M
In the below example when counter reaches 4, loop jumps to next iteration
and any statements after the continue keyword are skipped for current
iteration.
continue;
}
system.out.println("This will not get printed when counter is 4");
}
an
Q9) What is the difference between double and float variables in Java?
Ans: In java, float takes 4 bytes in memory while Double takes 8 bytes in
oh
memory. Float is a single precision floating point decimal number while
Double is double precision decimal number.
M
Q10) What is the Final Keyword in Java? Give an example.
Ans: In java, a constant is declared using the keyword Final. Value can be
ss
assigned only once and after assignment, value of a constant can’t be
changed.
la
subclasses. This method are faster than any other method, because they are
resolved at complied time.
dl
an
Q12) How can you generate random numbers in Java?
Ans:
oh
● Using Math.random() you can generate random numbers in the range
greater than or equal to 0.1 and less than 1.0
M
● Using Random class in package java.util
case 1:
system.out.println("Score is 1");
id
break;
case 2:
M
system.out.println("Score is 2");
break;
default:
system.out.println("Default Case");
}
}
}
Q14) What’s the base class in Java from which all classes are derived?
Ans: java.lang.object
Ans: In java, main() method can’t return any data and hence, it’s always
an
declared with a void return type.
oh
Ans: In Java, package is a collection of classes and interfaces which are
bundled together as they are related to each other. Use of packages helps
developers to modularize the code and group the code for proper re-use.
M
Once code has been packaged in Packages, it can be imported in other
classes and used.
ss
Q17) Can we declare a class as Abstract without having any abstract
method?
la
Ans: Yes we can create an abstract class by using abstract keyword before
C
class name even if it doesn’t have any abstract method. However, if a class
has even one abstract method, it must be declared as abstract otherwise it
will give an error.
e
dl
Ans: The primary difference between an abstract class and interface is that
an interface can only possess declaration of public static methods with no
M
an
abstract class while a class can implement many interfaces.
Use of interfaces also puts an extra burden on the developers as any time an
interface is implemented in a class; developer is forced to implement each
oh
and every method of interface.
M
Q20) Does Importing a package imports its sub-packages as well in Java?
are loaded. To load the classes from its sub-package (say department),
developer has to import it explicitly as follows:
C
Import university.department.*
e
Ans: In java, main method must be public static in order to run any
application correctly. If main method is declared as private, developer won’t
id
get any compilation error however, it will not get executed and will give a
runtime error.
M
Ans: In java, we can pass argument to a function only by value and not by
reference.
Ans: Serialization is used when data needs to be transmitted over the network.
Using serialization, object’s state is saved and converted into byte stream .The
an
byte stream is transferred over the network and the object is re-created at
destination.
oh
Q25) Is it compulsory for a Try Block to be followed by a Catch Block in Java
for Exception handling?
M
Ans: Try block needs to be followed by either Catch block or Finally block or
both. Any exception thrown from try block needs to be either caught in the
catch block or else any specific tasks to be performed before code abortion
ss
are put in the Finally block.
la
Q26) Is there any way to skip Finally block of exception even if some
exception occurs in the exception block?
C
exception occurs and the only way to avoid execution of any statements in
dl
Finally block is by aborting the code forcibly by writing following line of code
at the end of try block:
id
System.exit(0);
Ans: The constructor of a class is invoked every time an object is created with
new keyword.
For example, in the following class two objects are created using new keyword
and hence, constructor is invoked two times.
public class const_example {
const_example() {
system.out.println("Inside constructor");
}
public static void main(String args[]) {
an
const_example c2 = new const_example();
}
}
oh
Q28) Can a class have multiple constructors?
M
Ans: Yes, a class can have multiple constructors with different parameters.
Which constructor gets used for object creation depends on the arguments
ss
passed while creating the objects.
la
and not to individual objects and are resolved at the time of compilation (not
at runtime).Even if we try to override static methods, we will not get a
e
}
public class subclass extends superclass {
super.displayResult();
an
}
oh
public static void main(String args[]) {
M
obj.displayResult();
ss
}
la
}
C
Ans: String is not a primitive data type in java. When a string is created in java,
it’s actually an object of Java.Lang.String class that gets created. After
M
creation of this string object, all built-in methods of String class can be used
on the string object.
Q32) In the below example, how many String Objects are created?
Ans: In java, string objects are called immutable as once value has been
assigned to a string, it can’t be changed and if changed, a new object is
an
created.
In below example, reference str refers to a string object having value “Value
one”.
oh
String str="Value One";
When a new value is assigned to it, a new String object gets created and the
M
reference is moved to the new object.
str="New Value";
ss
Q34) What’s the difference between an array and Vector?
Ans: An array groups data of same primitive type and is static in nature while
la
vectors are dynamic in nature and can hold data of different data types.
C
Q38) When a lot of changes are required in data, which one should be a
preference to be used? String or StringBuffer?
Ans: Since StringBuffers are dynamic in nature and we can change the values
an
of StringBuffer objects unlike String which is immutable, it’s always a good
choice to use StringBuffer when data is being changed too much. If we use
String in such a case, for every data change a new String object will be
oh
created which will be an extra overhead.
M
Q39) What’s the purpose of using Break in each case of Switch Statement?
Ans: Break is used after each case (except the last one) in a switch so that
code breaks after the valid case and doesn’t flow in the proceeding cases
ss
too.
If break isn’t used after each case, all cases after the valid case also get
la
Ans: In java, when an object is not referenced any more, garbage collection
e
Q41) How we can execute any code even before main method?
M
Q42) Can a class be a super class and a sub-class at the same time? Give
example.
Ans: If there is a hierarchy of inheritance used, a class can be a super class for
another class and a sub-class for another one at the same time.
In the example below, continent class is sub-class of world class and it’s
super class of country class.
public class world {
..........
an
}
public class continenet extends world {
oh
............
M
public class country extends continent {
ss
......................
}
la
C
Q46) There are two classes named classA and classB. Both classes are in
the same package. Can a private member of classA can be accessed by an
object of classB?
an
Ans: Private members of a class aren’t accessible outside the scope of that
class and any other class even in the same package can’t access them.
oh
Q47) Can we have two methods in a class with the same name?
Ans: We can define two methods in a class with the same name but with
M
different number/type of parameters. Which method is to get invoked will
depend upon the parameters passed.
ss
For example in the class below we have two print methods with same name
but different parameters. Depending upon the parameters, appropriate one
will be called:
la
}
id
obj1.print();
obj1.print("xx");
an
}
oh
Q48) How can we make copy of a java object?
Ans: We can use the concept of cloning to create copy of an object. Using
M
clone, we create copies with the actual state of an object.
Clone() is a method of Cloneable interface and hence, Cloneable interface
needs to be implemented for making object copies.
ss
Q49) What’s the benefit of using inheritance?
la
Q50) What’s the default access specifier for variables and methods of a
dl
class?
id
Ans: Default access specifier for variables and method is package protected
i.e variables and class is available to any other class but in the same
package, not outside the package.
M
Ans: If we want a class not to be extended further by any class, we can use the
keyword Final with the class name.
In the following example, Stone class is Final and can’t be extend
public Final Class Stone {
// Class methods and Variables
}
an
Q53) What’s the access scope of Protected Access specifier?
oh
Ans: When a method or a variable is declared with Protected access specifier,
it becomes accessible in the same class, any other class of the same
package as well as a sub-class.
M
Modifier Class Package Subclass World
ss
public Y Y Y Y
la
protected Y Y Y N
C
no modifier Y Y N N
e
private Y N N N
dl
Ans: Stack and Queue both are used as placeholder for a collection of data.
The primary difference between a stack and a queue is that stack is based on
M
Last in First out (LIFO) principle while a queue is based on FIFO (First In First
Out) principle.
an
Q56) How can we use primitive data types as objects?
Ans: Primitive data types like int can be handled as objects by the use of their
oh
respective wrapper classes. For example, Integer is a wrapper class for
primitive data type int. We can apply different methods to a wrapper class,
M
just like any other object.
in waiting state.
● Dead: A thread which has gone dead after execution is in dead state.
M
an
Q61) What will be the output of following piece of code?
oh
public static void main(String args[]) {
M
int x = 4;
system.out.println(x++);
ss
}
}
la
Ans: In this case postfix ++ operator is used which first returns the value and
C
Q61) A person says that he compiled a java class successfully without even
having a main method in it? Is it possible?
dl
Ans: main method is an entry point of Java class and is required for execution
id
Ans: Non-Static methods are owned by objects of a class and have object
level scope and in order to call the non-Static methods from a static block
(like from a static main method), an object of the class needs to be created
first. Then using object reference, these methods can be invoked.
Q63) What are the two environment variables that must be set in order to
run any Java programs?
Ans: Java programs can be executed in a machine only once following two
environment variables have been properly set:
1. PATH variable
2. CLASSPATH variable
an
Ans: In Java, if a variable is used in a code without prior initialization by a valid
value, program doesn’t compile and gives an error as no default value is
oh
assigned to variables in Java.
Q65) Can a class in Java be inherited from more than one class?
M
Ans: In Java, a class can be derived from only one class and not from multiple
classes. Multiple inheritances is not supported by Java.
ss
Q66) Can a constructor have different name than a Class name in Java?
la
Ans: Constructor in Java must have same name as the class name and if the
name is different, it doesn’t act as a constructor and compiler thinks of it as a
C
normal method.
Ans: In Java, there is not goto keyword and java doesn’t support this feature of
M
Ans: In java, a thread which is in dead state can’t be started again. There is no
way to restart a dead thread.
an
Q71) Is JDK required on each machine to run a Java program?
Ans: JDK is development Kit of Java and is required for development only and
to run a Java program on a machine, JDK isn’t required. Only JRE is required.
oh
Q72) What’s the difference between comparison done by equals method
M
and == operator?
Ans: In Java, equals() method is used to compare the contents of two string
objects and returns true if the two have same value while == operator
ss
compares the references of two string objects.
In the following example, equals() returns true as the two string objects have
la
same values. However == operator returns false as both string objects are
referencing to different objects:
C
if (str1.equals(str2))
}
if (str1 == str2) {
} else
an
{
oh
// This condition is NOT true
M
}
ss
}
la
}
C
Ans: Yes, we can do this by use of native methods. In case of native method
based development, we define public static methods in our Java class
id
Ans: In Java, there are no destructors defined in the class as there is no need
to do so. Java has its own garbage collection mechanism which does the job
automatically by destroying the objects when no longer referenced.
Ans: Static methods can’t be overridden in any class while any methods in an
interface are by default abstract and are supposed to be implemented in the
classes being implementing the interface. So it makes no sense to have static
methods in an interface in Java.
an
Q77) In a class implementing an interface, can we change the value of any
variable defined in the interface?
oh
Ans: No, we can’t change the value of any variable of an interface in the
implementing class as all variables defined in the interface are by default
M
public, static and Final and final variables are like constants which can’t be
changed later.
ss
Q78) Is it correct to say that due to garbage collection feature in Java, a
java program never goes out of memory?
la
So, garbage collection helps in reducing the chances of a program going out
dl
Q79) Can we have any other return type than void for main method?
Ans: No, Java class main method can have only void return type for the
M
Q80) I want to re-reach and use an object once it has been garbage
collected. How it’s possible?
Ans: Once an object has been destroyed by garbage collector, it no longer
exists on the heap and it can’t be accessed again. There is no way to
reference it again.
an
Q82) I want to control database connections in my program and want that
only one thread should be able to make database connection at a time. How
oh
can I implement this logic?
M
Database related code can be placed in a method which hs synchronized
keyword so that only one thread can access it at a time.
ss
Q83) How can an exception be thrown manually by a programmer?
keyword is used. Then this exception is caught and handled in the catch
block.
C
excMethod();
dl
} catch (ManualException e) {}
}
id
if (name == null) {
throw (new ManualException("Exception thrown manually ");
}
}
Q84) I want my class to be developed in such a way that no other class
(even derived class) can create its objects. How can I do so?
an
Ans: In java, each object when created gets a memory space from a heap.
When an object is destroyed by a garbage collector, the space allocated to it
from the heap is re-allocated to the heap and becomes available for any
oh
new objects.
Q86) How can we find the actual size of an object on the heap?
M
Ans: In java, there is no way to find out the exact size of an object on the heap.
ss
Q87) Which of the following classes will have more memory allocated?
Ans: If a class has multiple constructors, it’s possible to call one constructor
from the body of another one using this().
an
return new java.util.Enumeration()
oh
@Override
M
public boolean hasMoreElements()
ss
{
return false;
C
}
e
@Override
dl
{
M
return null;
}
}
Q91) Is there a way to increase the size of an array after its declaration?
Ans: Arrays are static and once we have specified its size, we can’t change it.
If we want to use such collections where we may require a change of size (no
of items), we should prefer vector over array.
an
Q92) If an application has multiple classes in it, is it okay to have a main
method in more than one class?
oh
Ans: If there is main method in more than one classes in a java application, it
won’t cause any issue as entry point for any application will be a specific
class and code will start from the main method of that particular class only.
M
Q93) I want to persist data of objects for later use. What’s the best approach
to do so?
ss
Ans: The best way to persist data for future use is to use the concept of
serialization.
la
Ans: In Java, if we define a new class inside a particular block, it’s called a
local class. Such a class has local scope and isn’t usable outside the block
e
Q95) String and StringBuffer both represent String objects. Can we compare
id
Ans: Although String and StringBuffer both represent String objects, we can’t
M
compare them with each other and if we try to compare them, we get an
error.
Q97) Can we cast any other type to Boolean Type with type casting?
Ans: No, we can neither cast any other primitive type to Boolean data type nor
can cast Boolean data type to any other primitive data type.
an
Q98) Can we use different return types for methods when overridden?
oh
overridden method should have same name, and parameters.But a method
can be overridden with a different return type as long as the new return type
extends the original.
M
For example , method is returning a reference type.
Class B extends A {
ss
A method(int x) {
la
//original method
C
}
e
B method(int x) {
dl
//overridden method
id
}
M
an
oh
M
ss
la
C
e
dl
id
M