Core Java Interview Questions 2022
Core Java Interview Questions 2022
Core Java Interview Questions 2022
Experienced in 2022
edureka.co/blog/interview-questions/java-interview-questions
Let us start by taking a look at some of the most frequently asked Java interview
questions,
Q7. What is singleton class in Java and how can we make a class singleton?
Q8. What is the difference between Array list and vector in Java?
Q10. What are the differences between Heap and Stack Memory
in Java?
Want to upskill yourself to get ahead in Career? Check out the Top Trending
Technologies.
We have compiled a list of top Java interview questions which are classified into 7
sections, namely:
1/56
In case you attended any Java interview recently, or have additional questions beyond
what we covered, we encourage you to post them in our QnA Forum. Our expert team
will get back to you at the earliest.
So let’s get started with the first set of basic Java Interview Questions.
It stands for Java It stands for Java It stands for Java Virtual Machine.
Development Kit. Runtime Environment.
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.
2/56
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.
Java is called platform independent because of its byte codes which can run on any
system irrespective of its underlying operating system.
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.
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.
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.
3/56
Q8. What is the difference between Array list and vector in Java?
ArrayList Vector
If an element is inserted into the Array List, it Vector defaults to doubling size of its
increases its Array size by 50%. array.
Array List does not define the increment size. Vector defines the increment size.
Array List can only use Iterator for traversing an Vector can use both Enumeration
Array List. and Iterator for traversing.
4/56
When you create a subclass instance, you’re also creating an instance of the parent class,
which is referenced to by the super reference variable.
HashSet TreeSet
It permits the null object. It does not allow the null object.
It is faster than TreeSet especially for It is slower than HashSet for these
search, insert, and delete operations. operations.
Q12. What are the differences between HashMap and HashTable in Java?
HashMap Hashtable
It permits one null key and multiple null values. It does not permit any null key or
value.
It is faster. It is slower.
5/56
Q13. What is the importance of reflection in Java?
Reflection is a runtime API for inspecting and changing the behavior of methods, classes,
and interfaces. Java Reflection is a powerful tool that can be really beneficial. Java
Reflection allows you to analyze classes, interfaces, fields, and methods during runtime
without knowing what they are called at compile time. Reflection can also be used to
create new objects, call methods, and get/set field values. External, user-defined classes
can be used by creating instances of extensibility objects with their fully-qualified names.
Debuggers can also use reflection to examine private members of classes.
The NonSerialized attribute can be used to prevent member variables from being
serialized.
You should
also make an object that potentially contains security-sensitive data
nonserializable if possible. Apply the NonSerialized attribute to certain fields that store
sensitive data if the object must be serialized. If you don’t exclude these fields from
serialisation, the data they store will be visible to any programmes with serialization
permission.
Yes, we can call a constructor of a class inside another constructor. This is also called as
constructor chaining. Constructor chaining can be done in 2 ways-
1. Within the same class: For constructors in the same class, the this() keyword can
be used.
2. From the base class: The super() keyword is used to call the constructor from the
base class.
The constructor chaining follows the process of inheritance. The constructor of the
sub class first calls the constructor of the super class. Due to this, the creation of sub
class’s object starts with the initialization of the data members of the super class.
The constructor chaining works similarly with any number of classes. Every
constructor keeps calling the chain till the top of the chain.
Q16. Contiguous memory locations are usually used for storing actual values
in an array but not in ArrayList. Explain.
An array generally contains elements of the primitive data types such as int, float, etc. In
such cases, the array directly stores these elements at contiguous memory locations.
While an ArrayList does not contain primitive data types. An arrayList contains the
reference of the objects at different memory locations instead of the object itself. That is
why the objects are not stored at contiguous memory locations.
Q17. How is the creation of a String using new() different from that of a
literal?
When we
create a string using new(), a new object is created. Whereas, if we create a
6/56
string using the string literal syntax, it may return an already existing object with the
same name.
Java allows multiple threads to execute. They may be accessing the same variable or
object. Synchronization helps to execute threads one after another.
It is important as it helps to execute all concurrent threads while being in sync. It prevents
memory consistency errors due to access to shared memory. An example of
synchronization code is-
2 {
3 a++;
4 }
As we have synchronized this function, this thread can only use the object after the
previous thread has used it.
Double Brace Initialization is a Java term that refers to the combination of two
independent processes. There are two braces used in this. The first brace creates an
anonymous inner class. The second brace is an initialization block. When these both are
used together, it is known as Double Brace Initialization. The inner class has a reference
to the enclosing outer class, generally using the ‘this’ pointer. It is used to do both creation
and initialization in a single statement. It is generally used to initialize collections. It
reduces the code and also makes it more readable.
Q20. Why is it said that the length() method of String class doesn’t return
accurate results?
The length() method of String class doesn’t return accurate results because
other words,
it simply takes into account the number of characters within in the String. In
code points outside of the BMP (Basic Multilingual Plane), that is, code points having a
value of U+10000 or above, will be ignored.
The reason for this is historical. One of Java’s original goals was to consider all text as
Unicode; yet, Unicode did not define code points outside of the BMP at the time. It was
too late to modify char by the time Unicode specified such code points.
7/56
Q21. What are the differences between Heap and Stack Memory in Java?
Exists until the end of execution of Heap memory lives from the
the thread. start till the end of application
Lifetime execution.
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:
8/56
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
summons 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.
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
1 class Abc {
3 methods}
An object is a real-world entity that has a state and behavior. An object has three
characteristics:
9/56
1. State
2. Behavior
3. Identity
Example
1 if (x > 100 )
2 {
}
4
10/56
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{
4 }
Methods Constructors
5. Method name may or may not be 5. Constructor name must always be the same
same as class name as the class name
In case you are facing any challenges with these Core Java interview questions, please
comment on your problems in the section below.
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.
11/56
Java Certification Training Course
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.
break continue
1. Can be used in switch and loop (for, 1. Can be only used with loop statements
while, do while) statements
Example break:
12/56
1 for ( int i = 0 ; i < 5 ; i++)</div>
2 <div>
3 <pre>{
4 if (i == 3 )
5 {
break ;
6
}
7
System.out.println(i);
8
}
9
Example continue:
2 {
3 if (i == 2 )
4 {
continue ;
5
}
6
System.out.println(i);
7
}
8
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:
13/56
1 public class InfiniteForLoopDemo
2 {
4 for (;;)
In Java, super() and this(), both are special keywords that are used to call the
constructor.
this() super()
2. Used to call the default constructor 2. Used to call the default constructor of the
of the same class parent/base class
3. Used to access methods of the 3. Used to access methods of the base class
current class
4. Used for pointing the current class 4. Used for pointing the superclass instance
instance
5. Must be the first line of a block 5. Must be the first line of a block
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.
14/56
Q37. Differentiate between static and non-static methods in Java.
1. The static keyword must be 1. No need to use the static keyword before the
used before the method name method name
2. It is called using the class 2. It is can be called like any general method
(className.methodName)
3. They can’t access any non- 3. It can access any static method and any static
static instance variables or variable without creating an instance of the class
methods
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:
15/56
Q40. Difference between String, StringBuilder, and StringBuffer.
If you think this article on Java Interview Questions is helpful, you can check out
Edureka’s Java Training in Chennai as well.
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
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.
Array ArrayList
Cannot contain values of different Can contain values of different data types.
data types
16/56
Arrays can contain primitive data Arraylists can contain only objects, no primitive
types as well as objects data types are allowed
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:
Q45. 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.
17/56
Want to upskill yourself to get ahead in Career? Check out this video
Core Java Interview Quesions And Answers for Freshers and Experienced
This 120+ core java interview question and answer will help freshers and experience to
crack the interview in 1st attempt
18/56
OOPS Java Interview Questions
19/56
1 class Car {
2 void run()
3 {
4 System.out.println(“car is running”);
5 }
}
6
class Audi extends Car {
7
void run()
8
{
9
System.out.prinltn(“Audi is running safely with
10 100km”);
11 }
13 {
15 b.run();
16 }
17 }
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:
20/56
public void eat();
An abstract class can provide complete, An interface cannot provide any code at
default code and/or just the details that all, just the signature
have to be overridden
An abstract class can have non-abstract All methods of an Interface are abstract
methods
An abstract class can have any visibility: An Interface visibility must be public (or)
public, private, protected none
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:
A class which inherits the properties is known as Child Class whereas a class whose
properties are inherited is known as Parent class.
21/56
Q7. What are the different types of inheritance in Java?
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.
22/56
1 class Adder {
3 {
4 return a+b;
5 }
7 {
8 return a+b;
}
9
public static void main(String args[])
10
{
11
System.out.println(Adder.add( 11 , 11 ));
12
System.out.println(Adder.add( 12.3 , 12.6 ));
13
}}
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.
23/56
1 class Car {
2 void run(){
3 System.out.println(“car is running”);
4 }
6 void run()
7 {
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.
24/56
1 class Base {
4 }
}
7
class Derived extends Base {
8
private static void display() {
9
System.out.println( "Static or class method from Derived" );
10
}
11
public void print() {
12
System.out.println( "Non-static or instance method from
13 Derived" );
14 }
17 {
19 obj1.display();
20 obj1.print();
}
21
}
22
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.
25/56
In case you are facing any challenges with these java interview
questions, please comment on your problems in the section
below.
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.
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.
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.
26/56
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.
2 }
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 java.lang.Cloneable 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.
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.
27/56
1 class Demo
2 {
3 int i;
5 {
6 i=k;
}
7
public Demo( int a, int b)
8
{
9
//body
10
}
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!
28/56
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
because data is sent in header. because data is sent in body.
Not Secured because data is exposed in Secured because data is not exposed in
URL bar. URL bar.
Idempotent Non-Idempotent
It is more efficient and used than Post It is less efficient and used
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.
1.void forward()
2.void include()
29/56
Q4. What are the differences between forward() method and
sendRedirect() methods?
forward() sends the same sendRedirect() method sends new request always
request to another resource. because it uses the URL bar of the browser.
forward() method works sendRedirect() method works within and outside the
within the server only. server.
1. Servlet is loaded
2. Servlet is instantiated
3. Servlet is initialized
4. Service the request
30/56
5. Servlet is destroyed
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 javax.servlet.http.Cookie 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.
ServletConfig ServletContext
Servlet config object represent single It represent whole web application running
servlet on particular JVM and common for all the
servlet
Its like local parameter associated with Its like global parameter associated with
particular servlet whole application
It’s a name value pair defined inside the ServletContext has application wide scope
servlet section of web.xml file so it has so define outside of servlet tag in web.xml
servlet wide scope file.
31/56
for example shopping cart of a user is a To get the MIME type of a file or application
specific to particular user so here we session related information is stored using
can use servlet config servlet context object.
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.
1. User Authentication
2. HTML Hidden Field
3. Cookies
4. URL Rewriting
5. Session Management API
Apart from this blog, if you want to get trained by professionals on this technology, you
can opt for structured training from edureka! Click below to know more.
JDBC Driver is a software component that enables java application to interact with the
database. There are 4 types of JDBC drivers:
32/56
Executing queries
Closing connection
Interfaces:
Connection
Statement
PreparedStatement
ResultSet
ResultSetMetaData
DatabaseMetaData
CallableStatement etc.
Classes:
DriverManager
Blob
Clob
Types
SQLException etc.
33/56
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.
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.
The ResultSetMetaData interface returns the information of table such as total number of
columns, column name, column type etc.
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.
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.
34/56
someone tries to execute insert/update statement it will throw java.sql.SQLException
with message “executeQuery method can not be used for update”.
You should use execute() method only when you are not sure about the type of statement
else use executeQuery or executeUpdate method.
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.
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!
35/56
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.
@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.
36/56
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.
37/56
ContextLoaderListener, on the other hand, is the listener to start up and shut down
the WebApplicationContext in Spring root. Some of its important functions includes tying
up the lifecycle of Application Context to the lifecycle of the ServletContext and
automating the creation of ApplicationContext.
Q6. What are the differences between constructor injection and setter
injection?
38/56
2) Doesn’t override the setter Overrides the constructor property if both
property are defined.
3) Creates a new instance if any Doesn’t create a new instance if you
modification occurs change the property value
4) Better for too many properties Better for a few properties.
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) 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
method.
3) byType Injects the bean based on the property type. It uses setter
method.
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.
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
39/56
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?
@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.
AspectJ annotations for configuring aspects and advices , @Aspect, @Before, @After,
@Around, @Pointcut, etc.
Also, Spring ORM provides support for using Spring declarative transaction management,
so you should utilize that rather than going for hibernate boiler-plate code for transaction
management.
40/56
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.
Apart from these Core Java interview questions for experienced professionals, if you want
to get trained by professionals on this technology, you can opt for a structured training
from edureka!
Similarly, hibernate configurations are flexible and can be done from XML configuration
file as well as programmatically.
1. Hibernate eliminates all the boiler-plate code that comes with JDBC and takes care
of managing resources, so we can focus on business logic.
2. Hibernate framework provides support for XML as well as JPA annotations, that
makes our code implementation independent.
3. Hibernate provides a powerful query language (HQL) that is similar to SQL.
However, HQL is fully object-oriented and understands concepts like inheritance,
polymorphism, and association.
4. Hibernate is an open source project from Red Hat Community and used worldwide.
This makes it a better choice than others because learning curve is small and there
are tons of online documentation and help is easily available in forums.
41/56
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.
42/56
4. What are the differences between get and load methods?
The differences between get() and load() methods are given below.
2) get() method always hit the database. load() method doesn’t hit the
database.
3) It returns a real object, not a proxy. It returns a proxy object.
4) It should be used if you are not sure about It should be used if you are sure
the existence of instance. that the instance exists.
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.
43/56
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!
Methods Description
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?
44/56
The include directive includes the The include action includes the content at
content at page translation time. request time.
The include directive includes the The include action doesn’t include the original
original content of the page so page content rather invokes the include() method of
size increases at runtime. Vendor provided class.
It’s better for static pages. It’s better for dynamic pages.
<%
response.setHeader(“Cache-Control”,”no-store”);
response.setHeader(“Pragma”,”no-cache”);
1. core tags
2. sql tags
3. xml tags
4. internationalization tags
5. functions tags
45/56
1 Cookie mycook = new Cookie( "name1" , "value1" );
2 response.addCookie(mycook1);
10
11
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.
We don’t need to configure JSP standard tags in web.xml 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 ${pageContext.request.method}.
46/56
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!
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.
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
47/56
Extending Thread class
This creates a thread by creating an instance of a new class that extends the Thread class.
The extending class must override the run() function, which is the thread’s entry point.
This is the easiest way to create a thread, by creating a class that implements the runnable
interface. After implementing the runnable interface, the class must implement the public
void run() method ()
The run() method creates a parallel thread in your programme. When run() returns, the
thread will come to an end.
The run() method creates a parallel thread in your programme. When run() returns, the
thread will come to an end.
Within the run() method, you must specify the thread’s code.
Like any other method, the run() method can call other methods, use other classes, and
define variables.
Java is always pass-by-value. This means that it creates a copy of the contents of the
parameter in memory. In Java, object variables always refer to the memory heap’s real
object.
Q5. Will the finally block get executed when the return statement is
written at the end of try block and catch block as shown below?
The finally block always gets executed even hen the return statement is written at the end
of the try block and the catch block. It always executes , whether there is an exception or
not. There are only a few situations in which the finally block does not execute, such as
VM crash, power failure, software crash, etc. If you don’t want to execute the finally block,
you need to call the System.exit() method explicitly in the finally block.
If an exception is not caught, it is thrown from the top of the stack and falls down the call
stack to the previous procedure. If the exception isn’t caught there, it falls back to the
previous function, and so on, until it’s caught or the call stack reaches the bottom. The
term for this is Exception propagation.
New-
48/56
When a thread is created, and before the program starts the thread, it is in the new state.
It is also referred to as a born thread.
Runnable
When a thread is started, it is in the Runnable state. In this state, the thread is executing
its task.
Waiting
Sometimes, a thread goes to the waiting state, where it remains idle because another
thread is executing. When the other thread has finished, the waiting thread again comes
into the running state.
Timed Waiting
In timed waiting, the thread goes to waiting state. But, it remains in waiting state for only
a specified interval of time after which it starts executing.It remains waiting either till the
time interval ends or till the other thread has finished.
Terminated
A thread is said to be in this state once it terminates. It may be because the thread has
completed its task or due to any other reason.
Q8. 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 {
3 {
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.
49/56
1 class FinallyExample {
3 try {
4 int x= 100 ;
5 }
6 catch (Exception e) {
7 System.out.println(e);
}
8
finally {
9
System.out.println( "finally block is executing" );}
10
}}
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 {
4 }
6 {
f1= NULL;
9
f2=NULL;
10
System.gc();
11
}
12
}
13
50/56
Q9. What are the differences between throw and throws?
Checked exceptions can not be Checked exception can be propagated with throws.
propagated with throw only.
Throw is used within the Throws is used with the method signature.
method.
You cannot throw multiple You can declare multiple exception e.g. public void
exception method()throws IOException,SQLException.
In case you are facing any challenges with these java interview questions, please comment
on your problems in the section below.
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.
To create you own exception extend the Exception class or any of its subclasses.
51/56
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
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.
Process Thread
Changes Any change in the parent Any change in the main thread
process does not affect child may affect the behavior of the
processes. other threads of the process.
52/56
Controlled by Process is controlled by the Threads are controlled by
operating system. programmer in a program.
Q14. 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 System.exit() or by
causing a fatal error that causes the process to abort.
Q16. 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.
53/56
1 public class Example {
3 try {
5 a[ 10 ]= 10 / 0 ;
6 }
7 catch (ArithmeticException e)
{
8
System.out.println( "Arithmetic exception in first catch block" );
9
}
10
catch (ArrayIndexOutOfBoundsException e)
11
{
12
System.out.println( "Array index out of bounds in second catch
13 block" );
14 }
15 catch (Exception e)
{
16
System.out.println( "Any exception in third catch block" );
17
}
18
}
19
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.
54/56
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.
By implementing the Runnable interface.
By extending the Thread
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:
In case you are facing any challenges with these java interview questions, please comment
your problems in the section below. Apart from this Blog, if you want to get trained from
professionals on this technology, you can opt for structured training from edureka!
So this brings us to the end of the Java interview questions blog. The topics that you
learned in this Core Java Interview Questions blog are the most sought-after skill sets that
recruiters look for in a Java Professional. These set of Java Interview Questions will
definitely help you ace your job interview. Good luck with your interview!
55/56
Check out the Java Training by Edureka, a trusted online learning company with a
network of more than 250,000 satisfied learners spread across the globe. We are here to
help you with every step on your journey, for becoming a besides this java interview
questions, we come up with a curriculum which is designed for students and
professionals who want to be a Java Developer. The course is designed to give you a
head start into Java programming and train you for both core and advanced Java
concepts along with various Java frameworks like Hibernate & Spring.
Got a question for us? Please mention it in the comments section of this “Java Interview
Questions” and we will get back to you as soon as possible or you can also join our Java
Training in Bangalore.
56/56