Basic Java Interview Questions
Q1. Explain JDK, JRE and JVM?
JDK vs JRE vs JVM
JDK JRE JVM
It stands for
It stands for
Java
Java Runtime It stands for Java Virtual Machine.
Developme
Environment.
nt Kit.
It is the
tool
JRE refers to
necessary
a runtime It is an abstract machine. It is a
to compile,
environment specification that provides a run-time
document
in which Java environment in which Java bytecode can
and
bytecode can be executed.
package
be executed.
Java
programs.
It’s an
It contains implementati
JVM follows three notations:
JRE + on of the
Specification, Implementation, and Ru
developme JVM which
ntime Instance.
nt tools. physically
exists.
Q2. Explain public static void main(String args[]) in Java.
main() in Java is the entry point for any Java program. It is always
written as public static void main(String[] args).
public: Public is an access modifier, which is used to specify
who can access this method. Public means that this Method will
be accessible by any Class.
static: It is a keyword in java which identifies it is class-based.
main() is made static in Java so that it can be accessed without
creating the instance of a Class. In case, main is not made static
then the compiler will throw an error as main() is called by the
JVM before any objects are made and only static methods can
be directly invoked via the class.
void: It is the return type of the method. Void defines the
method which will not return any value.
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.
String args[]: It is the parameter passed to the main method.
Q3. Why Java is platform independent?
Java is called platform independent because of its byte codes which
can run on any system irrespective of its underlying operating system.
Q4. Why Java is not 100% Object-oriented?
Java is not 100% Object-oriented because it makes use of eight
primitive data types such as boolean, byte, char, int, float, double,
long, short which are not objects.
Q5. What are wrapper classes in Java?
Wrapper classes convert the Java primitives into the reference types
(objects). Every primitive data type has a class dedicated to it. These
are known as wrapper classes because they “wrap” the primitive data
type into an object of that class. Refer to the below image which
displays different primitive type, wrapper class and constructor
argument.
Q6. What are constructors in Java?
In Java, constructor refers to a block of code which is used to
initialize an object. It must have the same name as that of the class.
Also, it has no return type and it is automatically called when an
object is created.
There are two types of constructors:
1. Default Constructor: In Java, a default constructor is the one
which does not take any inputs. In other words, default
constructors are the no argument constructors which will be
created by default in case you no other constructor is defined by
the user. Its main purpose is to initialize the instance variables
with the default values. Also, it is majorly used for object
creation.
2. Parameterized Constructor: The parameterized constructor in
Java, is the constructor which is capable of initializing the
instance variables with the provided values. In other words, the
constructors which take the arguments are called parameterized
constructors.
Q7. What is singleton class in Java 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.
Q8. What is the difference between Array list and vector in Java?
ArrayList Vector
Array List is not synchronized. Vector is synchronized.
Array List is fast as it’s non-
Vector is slow as it is thread safe.
synchronized.
If an element is inserted into
Vector defaults to doubling size of
the Array List, it increases its
its array.
Array size by 50%.
Array List does not define the
Vector defines the increment size.
increment size.
Vector can use both Enumeration
and Iterator for traversing.
Array List can only use Iterator
for traversing an Array List.
Q9. What is the difference between equals() and == in Java?
Equals() method is defined in Object class in Java and used for
checking equality of two objects defined by business logic.
“==” or equality operator in Java is a binary operator provided by
Java programming language and used to compare primitives and
objects. public boolean equals(Object o) is the method provided by
the Object class. The default implementation uses == operator to
compare two objects. For example: method can be overridden like
String class. equals() method is used to compare the values of two
objects.
Q10. What are the differences between Heap and Stack Memory
in Java?
The major difference between Heap and Stack memory are:
Features Stack Heap
Stack memory is used
Heap memory is used by all
Memory only by one thread of
the parts of the application.
execution.
Stack memory can’t be
Objects stored in the heap
Access accessed by other
are globally accessible.
threads.
Memory management is
Memory Follows LIFO manner
based on the generation
Management to free memory.
associated with each object.
Lifetime Exists until the end of Heap memory lives from the
start till the end of
execution of the thread.
application execution.
Stack memory only
contains local primitive Whenever an object is
Usage and reference variables created, it’s always stored in
to objects in heap space. the Heap space.
Q11. What is a package in Java? List down various advantages of
packages.
Packages in Java, are the collection of related classes and interfaces
which are bundled together. By using packages, developers can easily
modularize the code and optimize its reuse. Also, the code within the
packages can be imported by other classes and reused. Below I have
listed down a few of its advantages:
Packages help in avoiding name clashes
They provide easier access control on the code
Packages can also contain hidden classes which are not visible
to the outer classes and only used within the package
Creates a proper hierarchical structure which makes it easier to
locate the related classes
Q12. Why pointers are not used in Java?
Java doesn’t use pointers because they are unsafe and increases the
complexity of the program. Since, Java is known for its simplicity of
code, adding the concept of pointers will be contradicting. Moreover,
since JVM is responsible for implicit memory allocation, thus in order
to avoid direct access to memory by the user, pointers are
discouraged in Java.
Q13. What is JIT compiler in Java?
JIT stands for Just-In-Time compiler in Java. It is a program that
helps in converting the Java bytecode into instructions that are sent
directly to the processor. By default, the JIT compiler is enabled in
Java and is activated whenever a Java method is invoked. The JIT
compiler then compiles the bytecode of the invoked method into
native machine code, compiling it “just in time” to execute. Once the
method has been compiled, the JVM order the compiled code of that
method directly rather than interpreting it. This is why it is often
responsible for the performance optimization of Java applications at
the run time.
Q14. What are access modifiers in Java?
In Java, access modifiers are special keywords which are used to
restrict the access of a class, constructor, data member and method in
another class. Java supports four types of access modifiers:
1. Default
2. Private
3. Protected
4. Public
Modifier Default Private Protected Public
Same class YES YES YES YES
Same Package subclass YES NO YES YES
Same Package non-subclass YES NO YES YES
Different package subclass NO NO YES YES
Different package non-
NO NO NO YES
subclass
Q15. Define a Java Class.
A class in Java is a blueprint which includes all your data. A class
contains fields (variables) and methods to describe the behavior of an
object. Let’s have a look at the syntax of a class.
1 class Abc {
2 member variables // class body
3 methods}
Q16. What is an object in Java and how is it created?
An object is a real-world entity that has a state and behavior. An
object has three characteristics:
1. State
2. Behavior
3. Identity
An object is created using the ‘new’ keyword. For example:
ClassName obj = new ClassName();
Q17. What is Object Oriented Programming?
Object-oriented programming or popularly known as OOPs is a
programming model or approach where the programs are organized
around objects rather than logic and functions. In other words, OOP
mainly focuses on the objects that are required to be manipulated
instead of logic. This approach is ideal for the programs large and
complex codes and needs to be actively updated or maintained.
Q18. What are the main concepts of OOPs in Java?
Object-Oriented Programming or OOPs is a programming style that is
associated with concepts like:
1. Inheritance: Inheritance is a process where one class acquires
the properties of another.
2. Encapsulation: Encapsulation in Java is a mechanism of
wrapping up the data and code together as a single unit.
3. Abstraction: Abstraction is the methodology of hiding the
implementation details from the user and only providing the
functionality to the users.
4. Polymorphism: Polymorphism is the ability of a variable,
function or object to take multiple forms.
Q19. What is the difference between a local variable and an
instance variable?
In Java, a local variable is typically used inside a method,
constructor, or a block and has only local scope. Thus, this variable
can be used only within the scope of a block. The best benefit of
having a local variable is that other methods in the class won’t be
even aware of that variable.
Example
1 if(x > 100)
2 {
3 String test = "Edureka";
4 }
Whereas, an instance variable in Java, is a variable which is bounded
to its object itself. These variables are declared within a class, but
outside a method. Every object of that class will create it’s own copy
of the variable while using it. Thus, any changes made to the variable
won’t reflect in any other instances of that class and will be bound to
that particular instance only.
1 class Test{
2 public String EmpName;
3 public int empAge;
4 }
Q20. Differentiate between the constructors and methods in Java?
Methods Constructors
1. Used to represent the 1. Used to initialize the state of an
behavior of an object object
2. Must have a return type 2. Do not have any return type
3. Needs to be invoked
3. Is invoked implicitly
explicitly
4. No default method is 4. A default constructor is provided
provided by the compiler by the compiler if the class has none
5. Method name may or may 5. Constructor name must always be
not be same as class name the same as the class name
In case you are facing any challenges with these Java interview
questions, please comment on your problems in the section below.
Q21. What is final keyword in Java?
final is a special keyword in Java that is used as a non-access
modifier. A final variable can be used in different contexts such as:
final variable
When the final keyword is used with a variable then its value can’t be
changed once assigned. In case the no value has been assigned to the
final variable then using only the class constructor a value can be
assigned to it.
final method
When a method is declared final then it can’t be overridden by the
inheriting class.
final class
When a class is declared as final in Java, it can’t be extended by any
subclass class but it can extend other class.
Q22. What is the difference between break and continue
statements?
Break Continue
1. Can be used in switch and
1. Can be only used with loop
loop (for, while, do while)
statements
statements
2. It causes the switch or 2. It doesn’t terminate the loop but
loop statements to terminate causes the loop to jump to the next
the moment it is executed iteration
3. It terminates the 3. A continue within a loop nested with
innermost enclosing loop a switch will cause the next loop
or switch immediately iteration to execute
Example break:
1 for (int i = 0; i < 5; i++)
2 {
3 if (i == 3)
4 {
5 break;
6 }
7 [Link](i);
8 }
Example continue:
1 for (int i = 0; i < 5; i++)
2 {
3 if(i == 2)
4 {
5 continue;
6 }
7 [Link](i);
8 }
[Link] is an infinite loop in Java? Explain with an example.
An infinite loop is an instruction sequence in Java that loops endlessly
when a functional exit isn’t met. This type of loop can be the result of
a programming error or may also be a deliberate action based on the
application behavior. An infinite loop will terminate automatically
once the application exits.
For example:
1 public class InfiniteForLoopDemo
2 {
3 public static void main(String[] arg) {
4 for(;;)
5 [Link]("Welcome to Edureka!");
6 // To terminate this program press ctrl + c in the console.
7 }
8 }
Q24. What is the difference between this() and super() in Java?
In Java, super() and this(), both are special keywords that are used to
call the constructor.
this() super()
1. this() represents the current 1. super() represents the current
instance of a class instance of a parent/base class
2. Used to call the default
2. Used to call the default
constructor of the parent/base
constructor of the same class
class
3. Used to access methods of the 3. Used to access methods of the
current class base class
4. Used for pointing the current 4. Used for pointing the
class instance superclass instance
5. Must be the first line of a block 5. Must be the first line of a block
Q25. What is Java String Pool?
Java String pool refers to a collection of Strings which are stored in
heap memory. In this, whenever a new object is created, String pool
first checks whether the object is already present in the pool or not. If
it is present, then the same reference is returned to the variable else
new object will be created in the String pool and the respective
reference will be returned.
Q26. Differentiate between static and non-static methods in Java.
Static Method Non-Static Method
1. No need to use
1. The static keyword must be used
the static keyword before the
before the method name
method name
2. It is called using the class 2. It is can be called like any
([Link]) general method
3. It can access any static
3. They can’t access any non-static method and any static variable
instance variables or methods without creating an instance of
the class
Q27. What is constructor chaining in Java?
In Java, constructor chaining is the process of calling one constructor
from another with respect to the current object. Constructor chaining
is possible only through legacy where a subclass constructor is
responsible for invoking the superclass’ constructor first. There could
be any number of classes in the constructor chain. Constructor
chaining can be achieved in two ways:
1. Within the same class using this()
2. From base class using super()
Q28. Difference between String, StringBuilder, and StringBuffer.
Factor String StringBuilder StringBuffer
Constant String
Storage Area Heap Area Heap Area
Pool
Mutability Immutable Mutable Mutable
Thread Safety Yes No Yes
Performance Fast More efficient Less efficient
If you think this article on Java Interview Questions is helpful, you
can check out Edureka’s Java Online Training as well.
Q29. What is a classloader in Java?
The Java ClassLoader is a subset of JVM (Java Virtual Machine)
that is responsible for loading the class files. Whenever a Java
program is executed it is first loaded by the classloader. Java provides
three built-in classloaders:
1. Bootstrap ClassLoader
2. Extension ClassLoader
3. System/Application ClassLoader
Q30. Why Java Strings are immutable in nature?
In Java, string objects are immutable in nature which simply means
once the String object is created its state cannot be modified.
Whenever you try to update the value of that object instead of
updating the values of that particular object, Java creates a new string
object. Java String objects are immutable as String objects are
generally cached in the String pool. Since String literals are usually
shared between multiple clients, action from one client might affect
the rest. It enhances security, caching, synchronization, and
performance of the application.
Q31. What is the difference between an array and an array list?
Array ArrayList
Cannot contain values of Can contain values of different
different data types data types.
Size must be defined at the time
Size can be dynamically changed
of declaration
Need to specify the index in
No need to specify the index
order to add data
Arrays are not type
Arraylists are type
parameterized
Arrays can contain primitive Arraylists can contain only objects,
data types as well as objects no primitive data types are allowed
Q32. What is a Map in Java?
In Java, Map is an interface of Util package which maps unique keys
to values. The Map interface is not a subset of the main Collection
interface and thus it behaves little different from the other collection
types. Below are a few of the characteristics of Map interface:
1. Map doesn’t contain duplicate keys.
2. Each key can map at max one value.
Q33. What is collection class in Java? List down its methods and
interfaces.
In Java, the collection is a framework that acts as an architecture for
storing and manipulating a group of objects. Using Collections you
can perform various tasks like searching, sorting, insertion,
manipulation, deletion, etc. Java collection framework includes the
following:
Interfaces
Classes
Methods
The below image shows the complete hierarchy of the Java
Collection.
In case you are facing any challenges with these java interview
questions, please comment on your problems in the section below.
OOPS Java Interview Questions
Q1. What is Polymorphism?
Polymorphism is briefly described as “one interface, many
implementations”. Polymorphism is a characteristic of being able to
assign a different meaning or usage to something in different contexts
– specifically, to allow an entity such as a variable, a function, or an
object to have more than one form. There are two types of
polymorphism:
1. Compile time polymorphism
2. Run time polymorphism
Compile time polymorphism is method overloading whereas Runtime
time polymorphism is done using inheritance and interface.
Q2. What is runtime polymorphism or dynamic method dispatch?
In Java, runtime polymorphism or dynamic method dispatch is a
process in which a call to an overridden method is resolved at runtime
rather than at compile-time. In this process, an overridden method is
called through the reference variable of a superclass. Let’s take a look
at the example below to understand it better.
1 class Car {
2 void run()
3 {
4 [Link](“car is running”);
5 }
6 }
7 class Audi extends Car {
8 void run()
9 {
10 [Link](“Audi is running safely with 100km”);
11 }
12 public static void main(String args[])
13 {
14 Car b= new Audi(); //upcasting
15 [Link]();
16 }
17 }
Q3. What is abstraction in Java?
Abstraction refers to the quality of dealing with ideas rather than
events. It basically deals with hiding the details and showing the
essential things to the user. Thus you can say that abstraction in Java
is the process of hiding the implementation details from the user and
revealing only the functionality to them. Abstraction can be achieved
in two ways:
1. Abstract Classes (0-100% of abstraction can be achieved)
2. Interfaces (100% of abstraction can be achieved)
Q4. What do you mean by an interface in Java?
An interface in Java is a blueprint of a class or you can say it is a
collection of abstract methods and static constants. In an interface,
each method is public and abstract but it does not contain any
constructor. Thus, interface basically is a group of related methods
with empty bodies. Example:
public interface Animal {
public void eat();
public void sleep();
public void run();
}
Q5. What is the difference between abstract classes and
interfaces?
Abstract Class Interfaces
An abstract class can provide
complete, default code and/or An interface cannot provide any
just the details that have to be code at all, just the signature
overridden
In the case of an abstract class, a
A Class may implement several
class may extend only one
interfaces
abstract class
An abstract class can have non- All methods of an Interface are
abstract methods abstract
An abstract class can have An Interface cannot have instance
instance variables variables
An abstract class can have any
An Interface visibility must be
visibility: public, private,
public (or) none
protected
If we add a new method to an If we add a new method to an
abstract class then we have the Interface then we have to track
option of providing default down all the implementations of
implementation and therefore all the interface and define
the existing code might work implementation for the new
properly method
An abstract class can contain An Interface cannot contain
constructors constructors
Interfaces are slow as it requires
extra indirection to find the
Abstract classes are fast
corresponding method in the actual
class
Q6. What is inheritance in Java?
Inheritance in Java is the concept where the properties of one class
can be inherited by the other. It helps to reuse the code and establish a
relationship between different classes. Inheritance is performed
between two types of classes:
1. Parent class (Super or Base class)
2. Child class (Subclass or Derived class)
A class which inherits the properties is known as Child Class whereas
a class whose properties are inherited is known as Parent class.
Q7. What are the different types of inheritance in Java?
Java supports four types of inheritance which are:
1. Single Inheritance: In single inheritance, one class inherits the
properties of another i.e there will be only one parent as well as
one child class.
2. Multilevel Inheritance: When a class is derived from a class
which is also derived from another class, i.e. a class having
more than one parent class but at different levels, such type of
inheritance is called Multilevel Inheritance.
3. Hierarchical Inheritance: When a class has more than one
child classes (subclasses) or in other words, more than one child
classes have the same parent class, then such kind of inheritance
is known as hierarchical.
4. Hybrid Inheritance: Hybrid inheritance is a combination of
two or more types of inheritance.
Q8. What is method overloading and method overriding?
Method Overloading :
In Method Overloading, Methods of the same class shares the
same name but each method must have a different number of
parameters or parameters having different types and order.
Method Overloading is to “add” or “extend” more to the
method’s behavior.
It is a compile-time polymorphism.
The methods must have a different signature.
It may or may not need inheritance in Method Overloading.
Let’s take a look at the example below to understand it better.
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 [Link]([Link](11,11));
13 [Link]([Link](12.3,12.6));
14 }}
Method Overriding:
In Method Overriding, the subclass has the same method with
the same name and exactly the same number and type of
parameters and same return type as a superclass.
Method Overriding is to “Change” existing behavior of the
method.
It is a run time polymorphism.
The methods must have the same signature.
It always requires inheritance in Method Overriding.
Let’s take a look at the example below to understand it better.
Java Certification Training Course
Instructor-led Sessions
Real-life Case Studies
Assignments
Lifetime Access
Explore Curriculum
1 class Car {
2 void run(){
3 [Link](“car is running”);
4 }
5 Class Audi extends Car{
6 void run()
7 {
8 [Link]("Audi is running safely with 100km");
9 }
10 public static void main( String args[])
11 {
12 Car b=new Audi();
13 [Link]();
14 }
15 }
Q9. Can you override a private or static method in Java?
You cannot override a private or static method in Java. If you create a
similar method with the same return type and same method arguments
in child class then it will hide the superclass method; this is known as
method hiding. Similarly, you cannot override a private method in
subclass because it’s not accessible there. What you can do is create
another private method with the same name in the child class. Let’s
take a look at the example below to understand it better.
1 class Base {
2 private static void display() {
3 [Link]("Static or class method from Base");
4 }
5 public void print() {
6 [Link]("Non-static or instance method from Base");
7 }
8 class Derived extends Base {
9 private static void display() {
10 [Link]("Static or class method from Derived");
11 }
12 public void print() {
13 [Link]("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 [Link]();
20 [Link]();
21 }
22 }
Q10. What is multiple inheritance? Is it supported by Java?
If a child class inherits the property from multiple
classes is known as multiple inheritance. Java does not allow to
extend multiple classes.
The problem with multiple inheritance is that if multiple parent
classes have the same method name, then at runtime it becomes
difficult for the compiler to decide which method to execute from the
child class.
Therefore, Java doesn’t support multiple inheritance. The problem is
commonly referred to as Diamond Problem.
In case you are facing any challenges with these java interview
questions, please comment on your problems in the section below.
Q11. What is encapsulation in Java?
Encapsulation is a mechanism where you bind your data(variables)
and code(methods) together as a single unit. Here, the data is hidden
from the outer world and can be accessed only via current class
methods. This helps in protecting the data from any unnecessary
modification. We can achieve encapsulation in Java by:
Declaring the variables of a class as private.
Providing public setter and getter methods to modify and view
the values of the variables.
Q12. What is an association?
Association is a relationship where all object have their own lifecycle
and there is no owner. Let’s take the example of Teacher and Student.
Multiple students can associate with a single teacher and a single
student can associate with multiple teachers but there is no ownership
between the objects and both have their own lifecycle. These
relationships can be one to one, one to many, many to one and many
to many.
Q13. What do you mean by aggregation?
An aggregation is a specialized form of Association where all object
has their own lifecycle but there is ownership and child object can not
belong to another parent object. Let’s take an example of Department
and teacher. A single teacher can not belong to multiple departments,
but if we delete the department teacher object will not destroy.
Q14. What is composition in Java?
Composition is again a specialized form of Aggregation and we can
call this as a “death” relationship. It is a strong type of Aggregation.
Child object does not have their lifecycle and if parent object deletes
all child object will also be deleted. Let’s take again an example of a
relationship between House and rooms. House can contain multiple
rooms there is no independent life of room and any room can not
belongs to two different houses if we delete the house room will
automatically delete.
Q15. What is a marker interface?
A Marker interface can be defined as the interface having no data
member and member functions. In simpler terms, an empty interface
is called the Marker interface. The most common examples of Marker
interface in Java are Serializable, Cloneable etc. The marker interface
can be declared as follows.
1 public interface Serializable{
2 }
Q16. What is object cloning in Java?
Object cloning in Java is the process of creating an exact copy of an
object. It basically means the ability to create an object with a similar
state as the original object. To achieve this, Java provides a
method clone() to make use of this functionality. This method creates
a new instance of the class of the current object and then initializes all
its fields with the exact same contents of corresponding fields. To
object clone(), the marker interface [Link] must be
implemented to avoid any runtime exceptions. One thing you must
note is Object clone() is a protected method, thus you need to override
it.
Q17. What is a copy constructor in Java?
Copy constructor is a member function that is used to initialize an
object using another object of the same class. Though there is no need
for copy constructor in Java since all objects are passed by reference.
Moreover, Java does not even support automatic pass-by-value.
Q18. What is a constructor overloading in Java?
In Java, constructor overloading is a technique of adding any number
of constructors to a class each having a different parameter list. The
compiler uses the number of parameters and their types in the list to
differentiate the overloaded constructors.
1 class Demo
2 {
3 int i;
4 public Demo(int a)
5 {
6 i=k;
7 }
8 public Demo(int a, int b)
9 {
10 //body
11 }
12 }
In case you are facing any challenges with these java interview
questions, please comment on 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!
Servlets – Java Interview Questions
Q1. What is a servlet?
Java Servlet is server-side technologies to extend the capability
of web servers by providing support for dynamic response and
data persistence.
The [Link] and [Link] packages provide
interfaces and classes for writing our own servlets.
All servlets must implement the [Link] interface,
which defines servlet lifecycle methods. When implementing a
generic service, we can extend the GenericServlet class provided
with the Java Servlet API. The HttpServlet class provides
methods, such as doGet() and doPost(), for handling HTTP-
specific services.
Most of the times, web applications are accessed using HTTP
protocol and thats why we mostly extend HttpServlet class.
Servlet API hierarchy is shown in below image.
Q2. What are the differences between Get and Post methods?
Get Post
Limited amount of data can be sent Large amount of data can be sent bec
because data is sent in header. data is sent in body.
Not Secured because data is exposed in Secured because data is not expose
URL bar. URL bar.
Can be bookmarked Cannot be bookmarked
Idempotent Non-Idempotent
It is more efficient and used than Post It is less efficient and used
Q3. What is Request Dispatcher?
RequestDispatcher interface is used to forward the request to another
resource that can be HTML, JSP or another servlet in same
application. We can also use this to include the content of another
resource to the response.
There are two methods defined in this interface:
[Link] forward()
[Link] include()
Q4. What are the differences between forward() method and
sendRedirect() methods?
forward() method SendRedirect() method
sendRedirect() method sends new re
forward() sends the same request to
always because it uses the URL bar o
another resource.
browser.
sendRedirect() method works at
forward() method works at server side.
side.
forward() method works within the server sendRedirect() method works within
only. outside the server.
Q5. What is the life-cycle of a servlet?
There are 5 stages in the lifecycle of a servlet:
1. Servlet is loaded
2. Servlet is instantiated
3. Servlet is initialized
4. Service the request
5. Servlet is destroyed
Q6. How does cookies work in Servlets?
Cookies are text data sent by server to the client and it gets
saved at the client local machine.
Servlet API provides cookies support through
[Link] class that implements Serializable and
Cloneable interfaces.
HttpServletRequest getCookies() method is provided to get the
array of Cookies from request, since there is no point of adding
Cookie to request, there are no methods to set or add cookie to
request.
Similarly HttpServletResponse addCookie(Cookie c) method is
provided to attach cookie in response header, there are no getter
methods for cookie.
Q7. What are the differences between ServletContext vs
ServletConfig?
The difference between ServletContext and ServletConfig in Servlets
JSP is in below tabular format.
ServletConfig ServletContext
It represent whole web application run
Servlet config object represent single
on particular JVM and common for a
servlet
servlet
Its like local parameter associated with Its like global parameter associated
particular servlet whole application
It’s a name value pair defined inside the ServletContext has application wide s
servlet section of [Link] file so it has so define outside of servlet tag in web
servlet wide scope file.
getServletConfig() method is used to get getServletContext() method is used t
the config object the context object.
for example shopping cart of a user is a To get the MIME type of a fil
specific to particular user so here we can application session related informatio
use servlet config stored using servlet context object.
Q8. What are the different methods of session management in
servlets?
Session is a conversational state between client and server and it can
consists of multiple request and response between client and server.
Since HTTP and Web Server both are stateless, the only way to
maintain a session is when some unique information about the session
(session id) is passed between server and client in every request and
response.
Some of the common ways of session management in servlets are:
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.
JDBC – Java Interview Questions
1. What is JDBC Driver?
JDBC Driver is a software component that enables java application to
interact with the database. There are 4 types of JDBC drivers:
1. JDBC-ODBC bridge driver
2. Native-API driver (partially java driver)
3. Network Protocol driver (fully java driver)
4. Thin driver (fully java driver)
2. What are the steps to connect
to a database in java?
Registering the driver class
Creating connection
Creating statement
Executing queries
Closing connection
3. What are the JDBC API components?
The [Link] package contains interfaces and classes for JDBC API.
Interfaces:
Connection
Statement
PreparedStatement
ResultSet
ResultSetMetaData
DatabaseMetaData
CallableStatement etc.
Classes:
DriverManager
Blob
Clob
Types
SQLException etc.
4. What is the role of JDBC DriverManager class?
The DriverManager class manages the registered drivers. It can be
used to register and unregister drivers. It provides factory method that
returns the instance of Connection.
5. What is JDBC Connection interface?
The Connection interface maintains a session with the database. It can
be used for transaction management. It provides factory methods that
returns the instance of Statement, PreparedStatement,
CallableStatement and DatabaseMetaData.
In case you are facing any challenges with these java interview
questions, please comment on your problems in the section below.
6. What is the purpose of JDBC ResultSet interface?
The ResultSet object represents a row of a table. It can be used to
change the cursor pointer and get the information from the database.
7. What is JDBC ResultSetMetaData interface?
The ResultSetMetaData interface returns the information of table such
as total number of columns, column name, column type etc.
8. What is JDBC DatabaseMetaData interface?
The DatabaseMetaData interface returns the information of the
database such as username, driver name, driver version, number of
tables, number of views etc.
9. What do you mean by batch processing in JDBC?
Batch processing helps you to group related SQL statements into a
batch and execute them instead of executing a single query. By using
batch processing technique in JDBC, you can execute multiple
queries which makes the performance faster.
10. What is the difference between execute, executeQuery,
executeUpdate?
Statement execute(String query) is used to execute any SQL query
and it returns TRUE if the result is an ResultSet such as running
Select queries. The output is FALSE when there is no ResultSet
object such as running Insert or Update queries. We can
use getResultSet() to get the ResultSet and getUpdateCount() method
to retrieve the update count.
Statement executeQuery(String query) is used to execute Select
queries and returns the ResultSet. ResultSet returned is never null
even if there are no records matching the query. When executing
select queries we should use executeQuery method so that if someone
tries to execute insert/update statement it will throw
[Link] with message “executeQuery method can not
be used for update”.
Statement executeUpdate(String query) is used to execute
Insert/Update/Delete (DML) statements or DDL statements that
returns nothing. The output is int and equals to the row count for SQL
Data Manipulation Language (DML) statements. For DDL
statements, the output is 0.
You should use execute() method only when you are not sure about
the type of statement else use executeQuery or executeUpdate
method.
Q11. What do you understand by JDBC Statements?
JDBC statements are basically the statements which are used to send
SQL commands to the database and retrieve data back from the
database. Various methods like execute(), executeUpdate(),
executeQuery, etc. are provided by JDBC to interact with the
database.
JDBC supports 3 types of statements:
1. Statement: Used for general purpose access to the database and
executes a static SQL query at runtime.
2. PreparedStatement: Used to provide input parameters to the
query during execution.
3. CallableStatement: Used to access the database stored
procedures and helps in accepting runtime parameters.
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!
Spring Framework – Java Interview Questions
Q1. What is Spring?
Wikipedia defines the Spring framework as “an application
framework and inversion of control container for the Java platform.
The framework’s core features can be used by any Java application,
but there are extensions for building web applications on top of the
Java EE platform.” Spring is essentially a lightweight, integrated
framework that can be used for developing enterprise applications in
java.
Q2. Name the different modules of the Spring framework.
Some of the important Spring Framework modules are:
Spring Context – for dependency injection.
Spring AOP – for aspect oriented programming.
Spring DAO – for database operations using DAO pattern
Spring JDBC – for JDBC and DataSource support.
Spring ORM – for ORM tools support such as Hibernate
Spring Web Module – for creating web applications.
Spring MVC – Model-View-Controller implementation for
creating web applications, web services etc.
Q3. List some of the important annotations in annotation-based
Spring configuration.
The important annotations are:
@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.
There are five Scopes defined in Spring beans.
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.
In case you are facing any challenges with these java interview
questions, please comment on your problems in the section below.
Q5. Explain the role of DispatcherServlet and
ContextLoaderListener.
DispatcherServlet is basically the front controller in the Spring MVC
application as it loads the spring bean configuration file and initializes
all the beans that have been configured. If annotations are enabled, it
also scans the packages to configure any bean annotated with
@Component, @Controller, @Repository or @Service annotations.
Con
textLoaderListener, 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.
Programming & Frameworks Training
FULL STACK WEB DEVELOPMENT INTERNSHIP
PROGRAM
Full Stack Web Development Internship Program
Reviews
5(2022)
JAVA CERTIFICATION TRAINING COURSE
Java Certification Training Course
Reviews
4(49947)
PYTHON SCRIPTING CERTIFICATION TRAINING
Python Scripting Certification Training
Reviews
5(10580)
PYTHON DJANGO CERTIFICATION TRAINING COURSE
Python Django Certification Training Course
Reviews
5(6055)
[Link] CERTIFICATION TRAINING
[Link] Certification Training
Reviews
5(6755)
MASTERING PERL SCRIPTING CERTIFICATION
TRAINING
Mastering Perl Scripting Certification Training
Reviews
5(4381)
ADVANCED JAVA CERTIFICATION TRAINING
Advanced Java Certification Training
Reviews
5(4028)
SPRING FRAMEWORK CERTIFICATION TRAINING
Spring Framework Certification Training
Reviews
5(8913)
PHP & MYSQL WITH MVC FRAMEWORKS
CERTIFICATION TRAINING
PHP & MySQL with MVC Frameworks Certification Training
Reviews
5(3747)
Next
Q6. What are the differences between constructor injection and
setter injection?
No. Constructor Injection Setter Injection
1) No Partial Injection Partial Injection
Overrides the constructor property if
2) Doesn’t override the setter property
defined.
Creates a new instance if any Doesn’t create a new instance if yo
3)
modification occurs the property value
4) Better for too many properties Better for a few properties.
Q7. What is autowiring in Spring? What are the autowiring
modes?
Autowiring enables the programmer to inject the bean automatically.
We don’t need to write explicit injection logic. Let’s see the code to
inject bean using dependency injection.
1. <bean
id=“emp” class=“[Link]” autowire=“byNam
e” />
The autowiring modes are given below:
No. Mode Description
1) No this is the default mode, it means autowiring is not enabled.
2) byName Injects the bean based on the property name. It uses setter meth
3) byType Injects the bean based on the property type. It uses setter metho
4) constructor It injects the bean using constructor
Q8. How to handle exceptions in Spring MVC Framework?
Spring MVC Framework provides the following ways to help us
achieving robust exception handling.
Controller Based:
We can define exception handler methods in our controller classes.
All we need is to annotate these methods with @ExceptionHandler
annotation.
Global Exception Handler:
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:
@Controller – for controller classes in Spring MVC project.
@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.
@Autowired – for autowiring dependencies in spring beans.
@Qualifier – with @Autowired annotation to avoid confusion when
multiple instances of bean type is present.
@Service – for service classes.
@Scope – for configuring the scope of the spring bean.
@Configuration, @ComponentScan and @Bean – for java based
configurations.
AspectJ annotations for configuring aspects and advices , @Aspect,
@Before, @After, @Around, @Pointcut, etc.
Q10. How to integrate Spring and Hibernate Frameworks?
We can use Spring ORM module to integrate Spring and Hibernate
frameworks if you are using Hibernate 3+ where SessionFactory
provides current session, then you should avoid
using HibernateTemplate or HibernateDaoSupport classes and better
to use DAO pattern with dependency injection for the integration.
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.
Q11. Name the types of transaction management that Spring
supports.
Two types of transaction management are supported by Spring. They
are:
1. Programmatic transaction management: In this, the
transaction is managed with the help of programming. It
provides you extreme flexibility, but it is very difficult to
maintain.
2. Declarative transaction management: In this, transaction
management is separated from the business code. Only
annotations or XML based configurations are used to manage
the transactions.
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 structured
training from edureka!
Hibernate – Java Interview Questions
1. What is Hibernate Framework?
Object-relational mapping or ORM is the programming technique to
map application domain model objects to the relational database
tables. Hibernate is Java-based ORM tool that provides a framework
for mapping application domain objects to the relational database
tables and vice versa.
Hibernate provides a reference implementation of Java Persistence
API, that makes it a great choice as ORM tool with benefits of loose
coupling. We can use the 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.
2. What are the important benefits of using Hibernate
Framework?
Some of the important benefits of using hibernate framework are:
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
documentation 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.
3. Explain Hibernate architecture.
Hibernate has a layered architecture which helps the user to operate
without having to know the underlying APIs. Hibernate makes use of
the database and configuration data to provide persistence services
(and persistent objects) to the application. It includes many objects
such as persistent object, session factory, transaction factory,
connection factory, session, transaction etc.
The Hibernate architecture is categorized in four layers.
Java application layer
Hibernate framework layer
Backhand API layer
Database layer
4. What are the differences between get and load methods?
The differences between get() and load() methods are given below.
No. get() load()
Returns null if object is not Throws ObjectNotFoundException if
1)
found. an object is not found.
get() method always hit the load() method doesn’t hit the
2)
database. database.
3) It returns a real object, not a It returns a proxy object.
proxy.
It should be used if you are not
It should be used if you are sure that
4) sure about the existence of
the instance exists.
instance.
5. What are the advantages of Hibernate over JDBC?
Some of the important advantages of Hibernate framework over
JDBC are:
1. Hibernate removes a lot of boiler-plate code that comes with
JDBC API, the code looks 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 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 provides 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 the connection pool. This is a
very important feature in enterprise application and completely
missing in JDBC API.
9. Hibernate supports JPA annotations, so the code is independent
of the implementation and easily replaceable with other ORM
tools. JDBC code is very tightly coupled with the application.
In case you are facing any challenges with these Java interview
questions, please comment on 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
structured training from edureka!
JSP – Java Interview Questions
1. What are the life-cycle methods for a jsp?
Methods Description
It is invoked only once, same as init
public void jspInit()
method of servlet.
public void
_jspService(ServletRequest It is invoked at each request, same
request,ServletResponse)throws as service() method of servlet.
ServletException,IOException
It is invoked only once, same as
public void jspDestroy()
destroy() method of servlet.
2. What are the JSP implicit objects?
JSP provides 9 implicit objects by default. They are as follows:
Object Type
1) out JspWriter
2) request HttpServletRequest
3) response HttpServletResponse
4) config ServletConfig
5) session HttpSession
6) application ServletContext
7) pageContext PageContext
8) page Object
9) exception Throwable
3. What are the differences between include directive and include
action?
include directive include action
The include directive includes
The include action includes the
the content at page translation
content at request time.
time.
The include directive includes The include action doesn’t include
the original content of the page the original content rather invokes
so page size increases at the include() method of Vendor
runtime. provided class.
It’s better for static pages. It’s better for dynamic pages.
4. How to disable caching on back button of the browser?
<%
[Link](“Cache-Control”,”no-store”);
[Link](“Pragma”,”no-cache”);
[Link] (“Expires”, “0”); //prevents caching at
the proxy server
%>
5. What are the different tags provided in JSTL?
There are 5 type of JSTL tags.
1. core tags
2. sql tags
3. xml tags
4. internationalization tags
5. functions tags
6. How to disable session in JSP?
1. <%@ page session=“false” %>
7. How to delete a Cookie in a JSP?
The following code explains how to delete a Cookie in a JSP :
1 Cookie mycook = new Cookie("name1","value1");
2
3 [Link](mycook1);
4
5 Cookie killmycook = new Cookie("mycook1","value1");
6
7 killmycook . set MaxAge ( 0 );
8
9 killmycook . set Path ("/");
10
11 killmycook . addCookie ( killmycook 1 );
8. Explain the jspDestroy() method.
jspDestry() method is invoked
from [Link] interface whenever a JSP page is
about to be destroyed. Servlets destroy methods can be easily
overridden to perform cleanup, like when closing a database
connection.
9. How is JSP better than Servlet technology?
JSP is a technology on the server’s side to make content generation
simple. They are document-centric, whereas servlets are programs. A
Java server page can contain fragments of Java program, which
execute and instantiate Java classes. However, they occur inside an
HTML template file. It provides the framework for the development
of a Web Application.
10. Why should we not configure JSP standard tags in [Link]?
We don’t need to configure JSP standard tags in [Link] because
when container loads the web application and find TLD files, it
automatically configures them to be used directly in the application
JSP pages. We just need to include it in the JSP page using taglib
directive.
11. How will you use JSP EL in order to get the HTTP method
name?
Using pageContext JSP EL implicit object you can get the request
object reference and make use of the dot operator to retrieve the
HTTP method name in the JSP page. The JSP EL code for this
purpose will look like ${[Link]}.
In case you are facing any challenges with these java interview
questions, please comment on 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
structured training from edureka!
Exception and Thread Java Interview Questions
Q1. What is the difference between Error and Exception?
An error is an irrecoverable condition occurring at runtime. Such as
OutOfMemory error. These JVM errors you cannot repair them at
runtime. Though error can be caught in the catch block but the
execution of application will come to a halt and is not recoverable.
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 the user
feedback for entering proper values etc.
Q2. How can you handle Java exceptions?
There are five keywords used to handle exceptions in Java:
1. try
2. catch
3. finally
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
The classes that extend RuntimeException are known as
unchecked exceptions.
Unchecked exceptions are not checked at compile-time.
Example: ArithmeticException, NullPointerException etc.
Q4. What purpose do the keywords final, finally, and finalize
fulfill?
Final:
Final is used to apply restrictions on class, method, and variable. A
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
the 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 [Link](e);
8 }
9 finally {
10 [Link]("finally block is executing");}
11 }}
12 }
Finalize
Finalize is used to perform clean up processing just before the 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 [Link]("Finalize is called");
4 }
5 public static void main(String args[])
6 {
7 FinalizeExample f1=new FinalizeExample();
8 FinalizeExample f2=new FinalizeExample();
9 f1= NULL;
10 f2=NULL;
11 [Link]();
12 }
13 }
Q5. What are the differences between throw and throws?
throw keyword throws keyword
Throw is used to explicitly throw an
Throws is used to declare an exception.
exception.
Checked exceptions can not be Checked exception can be propagat
propagated with throw only. with throws.
Throw is followed by an instance. Throws is followed by class.
Throws is used with the metho
Throw is used within the method.
signature.
You can declare multiple exception e.
You cannot throw multiple exception public void method()throw
IOException,SQLException.
In case you are facing any challenges with these java interview
questions, please comment on your problems in the section below.
Java Certification Training Course
Weekday / Weekend BatchesSee Batch Details
Q6. What is exception hierarchy in java?
The hierarchy is as follows:
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.
Q7. How to create a custom Exception?
To create you own exception extend the Exception class or any of its
subclasses.
class New1Exception extends Exception { } // this will
create Checked Exception
class NewException extends IOException { } // this will
create Checked exception
class NewException extends NullPonterExcpetion { } // this
will create UnChecked exception
Q8. What are the important methods of Java Exception Class?
Exception and all of it’s subclasses doesn’t provide any specific
methods and all of the methods are defined in the base class
Throwable.
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 an
argument to write the stack trace information to the file or
stream.
Q9. What are the differences between processes and threads?
Process Thread
An executing instance of a
Definition A thread is a subset of the proce
program is called a process.
Processes must use inter-
Communicatio process communication to Threads can directly comm
n communicate with sibling with other threads of its process
processes.
Threads can exercise cons
Processes can only exercise
Control control over threads of the
control over child processes.
process.
Any change in the parent Any change in the main thre
Changes process does not affect child affect the behavior of the other
processes. of the process.
Run in separate memory
Memory Run in shared memory spaces.
spaces.
Process is controlled by the Threads are controlled by prog
Controlled by
operating system. in a program.
Dependence Processes are independent. Threads are dependent.
Q10. What is a finally block? Is there a case when finally will not
execute?
Finally block is a block which always executes 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
[Link]() or by causing a fatal error that causes the process to
abort.
Q11. What is synchronization?
Synchronization refers to multi-threading. A synchronized block of
code can be executed by only one thread at a time. As Java supports
execution of multiple threads, two or more threads may access the
same fields or objects. Synchronization is a process which keeps all
concurrent threads in execution to be in sync. Synchronization avoids
memory consistency errors caused due to inconsistent view of shared
memory. When a method is declared as synchronized the thread holds
the monitor for that method’s object. If another thread is executing the
synchronized method the thread is blocked until that thread releases
the monitor.
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 public class Example {
2 public static void main(String args[]) {
3 try {
4 int a[]= new int[10];
5 a[10]= 10/0;
6 }
7 catch(ArithmeticException e)
8 {
9 [Link]("Arithmetic exception in first catch block");
10 }
11 catch(ArrayIndexOutOfBoundsException e)
12 {
13 [Link]("Array index out of bounds in second catch block");
14 }
15 catch(Exception e)
16 {
17 [Link]("Any exception in third catch block");
18 }
19 }
Q13. What are the important methods of Java Exception Class?
Methods are defined in the base class Throwable. Some of the
important methods of Java exception class are stated below.
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.
Q14. What is OutOfMemoryError in Java?
OutOfMemoryError is the subclass of [Link] which generally
occurs when our JVM runs out of memory.
Q15. What is a Thread?
A thread is the smallest piece of programmed instructions which can
be executed independently by a scheduler. In Java, all the programs
will have at least one thread which is known as the main thread. This
main thread is created by the JVM when the program starts its
execution. The main thread is used to invoke the main() of the
program.
Q16. What are the two ways to create a thread?
In Java, threads can be created in the following two ways:-
By implementing the Runnable interface.
By extending the Thread
Q17. What are the different types of garbage collectors in Java?
Garbage collection in Java a program which helps in implicit memory
management. Since in Java, using the new keyword you can create
objects dynamically, which once created will consume some memory.
Once the job is done and there are no more references left to the
object, Java using garbage collection destroys the object and relieves
the memory occupied by it. Java provides four types of garbage
collectors:
Serial Garbage Collector
Parallel Garbage Collector
CMS Garbage Collector
G1 Garbage Collector