Top 100 Java Interview Questions and Answers
2023
1. How do you ensure that your Java code is secure?
To ensure that my Java code is secure, I follow these practices:
Input validation: I make sure that all user input is properly
validated before it’s used.
Avoid hardcoded passwords and sensitive information in code.
Use cryptography to protect sensitive data.
Avoid using deprecated or insecure APIs.
Use security frameworks like Spring Security to implement secure
authentication and authorization mechanisms.
Stay up-to-date with the latest security vulnerabilities and
patches.
2. What are the most important principles of object-oriented
programming that you apply in your Java development?
The most important principles of object-oriented programming that I
apply in my Java development are:
Encapsulation: I encapsulate data and behavior within classes to
prevent external access and to ensure that changes in
implementation do not affect other parts of the code.
Inheritance: I use inheritance to create sub-classes that inherit
the properties and behavior of their parent classes, allowing me
to reuse code and avoid duplication.
Polymorphism: I use polymorphism to create methods that can
operate on different types of objects, allowing me to write more
generic and flexible code.
Abstraction: I use abstraction to hide implementation details and
focus on the essential features of an object.
3. How do you handle errors and exceptions in your Java code?
In my Java code, I handle errors and exceptions using the try-catch-
finally block. I wrap the code that can potentially throw an exception in a
try block and catch the exception in the catch block. In the catch block, I
log the error message and take appropriate action depending on the
severity of the exception. Finally, I use the finally block to clean up any
resources that were allocated in the try block.
4. What is Request Dispatcher?
RequestDispatcher interface is used to forward the request to another
resource that can be HTML, JSP, or another servlet in the same
application. We can also use this to include the content of another
resource in the response.
There are two methods defined in this interface:
void forward()
void include()
5. Can you explain the difference between the equals() and
hashCode() methods in Java?
The equals() method in Java is used to compare the contents of two
objects and returns a boolean value indicating whether the objects are
equal or not. The hashCode() method, on the other hand, returns an
integer value that represents the hash code of an object. The hash code is
used by data structures like HashMap to store and retrieve objects
efficiently.
6. What is the life cycle of a servlet?
Servlet is loaded
Servlet is instantiated
Servlet is initialized
Service the request
Servlet is destroyed
7. Can you explain the difference between static and dynamic
binding in Java?
Static binding in Java occurs when the type of an object is determined at
compile time, while dynamic binding occurs when the type of an object is
determined at runtime. Static binding is used for static methods and
fields, while dynamic binding is used for instance methods.
8. How do you ensure that your Java code is maintainable and
scalable?
To ensure that my Java code is maintainable and scalable, I follow these
practices:
Write modular code that is easy to understand and modify.
Use design patterns to make the code more flexible and
adaptable.
Write unit tests to ensure that the code behaves as expected and
to catch bugs early.
Use version control to keep track of changes and collaborate with
other developers.
Use code reviews to get feedback from other developers and to
ensure that the code follows best practices.
Use profiling tools to identify performance bottlenecks and
optimize the code accordingly.
9. Can you describe your experience with Spring Framework?
Yes, I have experience with Spring Framework. I have used Spring to
develop web applications, REST APIs, and microservices. I like Spring
because it provides a comprehensive set of features and tools for building
enterprise-level applications in Java. Some of the key features that I have
used include dependency injection, aspect-oriented programming, and
Spring Security for authentication and authorization. I have also worked
with Spring Boot, which makes it easy to create standalone applications
with minimal configuration. Overall, I have found Spring to be a powerful
and flexible framework that has helped me to build complex applications
quickly and efficiently.
10. Explain Hibernate architecture.
Hibernate is designed with a layered architecture that simplifies the usage
for the end user by abstracting away the underlying APIs. Its primary
purpose is to provide persistence services and persistent objects to
applications by utilizing both the database and configuration data. This
functionality is achieved through the use of various objects such as the
session factory, transaction factory, connection factory, session,
transaction, and persistent object. The layered architecture of Hibernate
allows for a clean separation of concerns between these various
components, making it easier for developers to work with and maintain
their code.
11. The Hibernate architecture is categorized into four layers.
Java application layer
Hibernate framework layer
Backhand API layer
Database layer
12. Have you ever used Java concurrency features? If so, what
was your experience like?
Yes, I have used Java concurrency features like threads and synchronized
methods. My experience with Java concurrency has been good overall,
but I have learned that it’s important to be careful when using these
features to avoid issues like race conditions and deadlocks.
13. What is synchronization?
Synchronization in Java allows only one thread to execute a
synchronized block of code at a time.
It is necessary when multiple threads access the same fields or
objects to avoid memory consistency errors.
A synchronized method holds the monitor for its object and
blocks other threads until it is released.
Using synchronization ensures that all concurrent threads are in
sync and prevents inconsistent views of shared memory.
14. What is the difference between private, protected, and public
access modifiers in Java? Provide an example.
The private access modifier restricts access to the class itself, the
protected access modifier allows access to the class itself and its
subclasses, and the public access modifier allows access to everyone.
Example:
public class Person {
private String name; // Can only be accessed within the Person
class
protected int age; // Can be accessed within the Person class
and its subclasses
public double height; // Can be accessed by everyone
public class Student extends Person {
public void setAge(int age) {
this.age = age; // Can access age because it is protected
// Creating a Person object and accessing its properties
Person john = new Person();
john.name = "John"; // Compile-time error: name has private
access in Person
john.age = 30; // Compile-time error: age has protected access
in Person
john.height = 1.80; // OK, height is public
15. How do you optimize Java code for performance?
To optimize Java code for performance, I follow these practices:
Use data structures and algorithms that have good time
complexity.
Avoid using unnecessary object creation, as this can cause
garbage collection overhead.
Use caching to reduce the amount of time spent accessing
external resources.
Use multithreading and parallel processing to take advantage of
multiple CPU cores.
Use profiling tools to identify performance bottlenecks and
optimize the code accordingly.
16. What is the purpose of the final keyword in Java? Provide an
example.
The final keyword is used to create constants or to prevent a variable,
method, or class from being modified.
Example:
public class Circle {
private final double radius;
public Circle(double radius) {
this.radius = radius;
public final double getArea() {
return Math.PI * radius * radius;
}
// Creating a Circle object and calling the getArea() method
Circle c = new Circle(2.5);
double area = c.getArea();
17. Have you ever used Java 8’s new features such as lambdas
and streams? If so, can you give an example?
Yes, I have used Java 8’s new features such as lambdas and streams.
Here’s an example of how I have used lambdas to sort a list of objects
based on a specific property:
List<Person> people = Arrays.asList(new Person("John", 25),
new Person("Alice",
30), new Person("Bob", 20));
Collections.sort(people, (p1, p2) -> p1.getAge() -
p2.getAge());
18. What are some of the design patterns that you have used in
your Java projects?
Design patterns used in Java projects:
Singleton pattern
Factory pattern
Observer pattern
Strategy pattern
Template method pattern
Decorator pattern
Adapter pattern
19. How do you handle memory management in Java?
Memory management in Java:
Java uses a garbage collector to automatically manage memory
allocation and deallocation
Developers can help manage memory by using best practices
such as avoiding unnecessary object creation, minimizing the
scope of variables, and properly closing resources
20. Can you explain the difference between an abstract class and
an interface in Java?
Abstract class vs Interface in Java:
Abstract classes can have both abstract and non-abstract
methods, whereas interfaces only have abstract methods
Classes can only inherit from one abstract class but can
implement multiple interfaces
21. How do you test your Java code?
Testing Java code:
Unit testing with frameworks like JUnit
Integration testing
Functional testing
22. What are some of the most important data structures in Java?
Important data structures in Java:
ArrayList
LinkedList
HashMap
TreeSet
PriorityQueue
23. How do you ensure that your Java code is compatible with
different platforms and operating systems?
Ensuring compatibility with different platforms:
Writing platform-independent code using standard libraries and
avoiding platform-specific features
Testing on different platforms and operating systems
24. Can you explain the difference between a stack and a queue in
Java?
Stack vs Queue in Java: A stack is a LIFO (last-in, first-out) data
structure, whereas a queue is a FIFO (first-in, first-out) data structure
25. How do you ensure that your Java code is readable and easy
to understand?
Ensuring code readability:
Using meaningful variable and method names
Writing clear and concise comments
Following established coding standards and best practices
26. What is the role of a garbage collector in Java?
Role of garbage collector:
Automatically manages memory allocation and deallocation
Identifies and collects unreferenced objects to free up memory
27. Can you explain the difference between a static and non-static
method in Java?
Static vs non-static methods:
Static methods are associated with the class, not an instance of
the class, and can be called without an instance of the class
Non-static methods are associated with an instance of the class
and require an instance to be called
28. How do you ensure that your Java code is thread-safe?
Ensuring thread-safety:
Synchronization with locks, semaphores, or other mechanisms
Using thread-safe collections
29. Can you describe your experience with Hibernate?
Experience with Hibernate:
Hibernate is an ORM (Object-Relational Mapping) tool that maps
Java objects to database tables
Used Hibernate in multiple projects to simplify database access
and reduce boilerplate code
30. Have you ever used JavaFX? If so, what was your experience
like?
yes, Experience with JavaFX:
Yes, used JavaFX in multiple projects for building GUI
applications
Overall experience was positive, found it to be user-friendly and
versatile
31. What is the purpose of the static keyword in Java? Provide an
example.
The static keyword is used to create class-level variables and methods
that can be accessed without creating an object of the class. Example:
public class MathUtils {
public static final double PI = 3.14159;
public static double square(double num) {
return num * num;
// Accessing the PI constant and square method without
creating an object
double radius = 2.5;
double area = MathUtils.PI * MathUtils.square(radius);
32. How do you implement inheritance in Java?
Use the “extends” keyword to create a subclass that inherits fields and
methods from a superclass
33. What are some of the best practices for writing efficient Java
code?
Best practices for writing efficient Java code:
Minimize object creation
Use primitive types when possible
Avoid unnecessary calculations
Use efficient data structures
34. Can you explain the difference between a String and a
StringBuilder in Java?
String vs StringBuilder in Java:
The string is immutable, meaning its value cannot be changed
once it’s created
StringBuilder is mutable, allowing for efficient modification of its
value
35. How do you implement encapsulation in Java?
Use access modifiers such as private, protected, and public to control
access to class membersCan you describe your experience with
Maven?
Yes, used Maven in multiple projects as a build automation tool
and dependency management tool
Found it to be efficient and easy to use
36. How do you implement abstraction in Java?
Use abstract classes or interfaces to create a contract for classes to
implement
37. What are some of the best practices for debugging Java code?
Use a debugger tool to step through the code
Use logging to identify issues
Test code in a controlled environment
38. Can you explain the difference between a static and a non-
static variable in Java?
Static variables are associated with the class, not an instance of
the class, and are shared among all instances of the class
Non-static variables are associated with an instance of the class
and have separate values for each instance
39. How do you implement composition in Java?
Use object composition to create a class that contains references to other
objects
40. Can you describe your experience with Apache Tomcat?
Yes, used Tomcat in multiple projects as a web server and servlet
container
Found it to be stable and efficient
41. How do you implement exception handling in Java?
Use try-catch blocks to handle exceptions
Use the throws keyword to declare exceptions that a method may
throw
42. How do you ensure that your Java code is compliant with
industry standards and best practices?
To ensure that my Java code is compliant with industry standards and
best practices, I follow these steps:
Use proper naming conventions for classes, variables, and
methods
Write clear and concise code that is easy to read and understand
Use comments to document the purpose and functionality of the
code
Follow SOLID principles to create a flexible and maintainable
codebase
Use design patterns to solve common problems and promote
code reuse
Write unit tests to ensure that the code is functioning as
expected
Use a code review process to get feedback from other developers
43. What is the difference between a HashMap and a TreeMap in
Java? Provide an example.
A HashMap is an unordered collection that uses a hash table for storing
key-value pairs, whereas a TreeMap is a sorted collection that uses a
binary search tree for storing key-value pairs. Example:
// HashMap example
HashMap<String, Integer> map = new HashMap<>();
map.put("John", 30);
map.put("Mary", 25);
map.put("Bob", 35);
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
// TreeMap example
TreeMap<String, Integer> treeMap = new TreeMap<>();
treeMap.put("John", 30);
treeMap.put("Mary", 25);
treeMap.put("Bob", 35);
for (String key : treeMap.keySet()) {
System.out.println(key + ": " + treeMap.get(key));
}
44. Can you explain the difference between an ArrayList and a
LinkedList in Java?
ArrayList and LinkedList are both implementations of the List interface in
Java, but they differ in their underlying data structures and performance
characteristics. ArrayList uses an array to store elements and provides
constant-time access to elements by index. However, inserting or
removing elements from the middle of the list can be slow, as it requires
shifting all elements after the insertion or removal point. LinkedList, on
the other hand, uses a linked list to store elements and provides efficient
insertion and removal of elements at any position in the list. However,
accessing elements by index requires traversing the list, which can be
slower than with an ArrayList.
45. Have you ever used Java servlets? If so, what was your
experience like?
Yes, I have used Java servlets to build web applications. Servlets provide
a powerful way to handle HTTP requests and responses and can be used
to build scalable and efficient web applications. My experience with
servlets has been positive, as they allow for flexible and customizable
handling of HTTP requests and responses, and can integrate with other
Java web technologies such as JSP and JSTL.
46. How do you handle input and output operations in Java?
In Java, input and output operations can be handled using classes from
the java.io package. To read input from a file or a stream, you can use
classes such as BufferedReader or Scanner. To write output to a file or a
stream, you can use classes such as BufferedWriter or PrintWriter.
47. What is the role of a package in Java?
In Java, a package is a way to organize related classes and interfaces into
a single namespace. Packages provide a way to group related
functionality and promote code reuse, as well as provide a way to avoid
naming conflicts between classes with similar names. Packages can be
nested within other packages, and can also be used to control access to
classes and interfaces through the use of access modifiers.
48. Can you describe your experience with JUnit testing?
Yes, I have used JUnit extensively for unit testing Java code. JUnit
provides a powerful and easy-to-use framework for writing automated
tests, which can be run as part of a continuous integration pipeline or as
part of a development workflow. JUnit provides a variety of assertion
methods for checking the behavior of code under test and also allows for
the use of mock objects to simulate dependencies and isolate the code
being tested.
49. How do you implement a singleton pattern in Java?
To implement a singleton pattern in Java, you can use a private
constructor and a static method to ensure that only one instance of the
class can be created. Here’s an example implementation:
public class Singleton {
private static Singleton instance;
private Singleton() {
// Private constructor to prevent instantiation
}
public static Singleton getInstance() {if (instance == null
50. How do you implement a decorator pattern in Java?
Implementing a decorator pattern in Java:
Use composition to add new functionality to an existing object at runtime
51. Can you describe your experience with JavaFX layout
managers?
As an AI language model, I don’t have direct experience with JavaFX
layout managers, but I can tell you that JavaFX provides several layout
managers to help you arrange UI components in your application’s user
interface. These layout managers include the HBox, VBox, FlowPane,
GridPane, and BorderPane. Each layout manager has its own strengths
and weaknesses, and you can choose the appropriate one depending on
your application’s requirements.
52. What is the difference between the == and equals() operators
in Java? Provide an example.
The == operator checks if two objects have the same memory address,
whereas the equals() method checks if two objects have the same value.
Example:
String s1 = "hello";
String s2 = new String("hello");
// Using the == operator
System.out.println(s1 == s2); // Output: false
// Using the equals() method
System.out.println(s1.equals(s2)); // Output: true
53. What is the role of a synchronized keyword in Java?
The synchronized keyword in Java is used to create mutually exclusive
sections of code called critical sections. When a method or block of code is
marked as synchronized, only one thread can execute that code at a time,
preventing multiple threads from accessing shared resources
simultaneously and causing thread safety issues such as race conditions
and deadlocks.
54. What is the difference between a checked and an unchecked
exception in Java? Provide an example.
A checked exception is a type of exception that is checked at compile-
time and must be handled by the calling method or thrown, whereas an
unchecked exception is not checked at compile-time and does not need to
be handled or declared.
Example:
public class Example {
public static void main(String[] args) {
// Checked exception example
try {
FileReader file = new FileReader("file.txt"); // Compiler
error: unhandled exception
} catch (FileNotFoundException e) {
System.out.println("File not found");
// Unchecked exception example
int[] nums = {1, 2, 3};
System.out.println(nums[3]); // Runtime error:
ArrayIndexOutOfBoundsException
55. What is the difference between a primitive type and a
reference type in Java?
Primitive Type Reference Type
Stores simple values directly in memory Stores reference to ob
Includes types like int, char, boolean, etc. Includes types like St
Passed by value Passed by reference
Cannot be null Can be null
56. How do you implement a visitor pattern in Java?
To implement the visitor pattern in Java, you need to define two sets of
classes: the element classes that accept visitors and the visitor classes
that operate on the elements. The element classes define an accept
method that takes a visitor as an argument, while the visitor classes
define overloaded visit methods for each type of element they can visit.
When an element’s accept method is called with a visitor as an argument,
the visitor’s appropriate visit method is called, allowing the visitor to
operate on the element.
57. Can you explain the difference between an InputStream and
an OutputStream in Java?
In Java, an InputStream is an abstract class representing an input stream
of bytes, while an OutputStream is an abstract class representing an
output stream of bytes. InputStreams can be used to read data from a
variety of sources, including files, network connections, and other input
streams, while OutputStreams can be used to write data to a variety of
destinations, including files, network connections, and other output
streams.
58. How do you implement a template method pattern in Java?
To implement the template method pattern in Java, you need to create an
abstract class that defines a template method and one or more abstract
methods that are implemented by concrete subclasses. The template
method provides a skeleton for the algorithm and calls the abstract
methods that are implemented differently by the concrete subclasses.
This allows the concrete subclasses to customize certain parts of the
algorithm while using the template method’s overall structure.
59. What is the difference between a class and an interface in
Java?
Class Interface
Can have instance variables and methods Cannot have instance va
Can have constructors Cannot have constructor
Can implement multiple interfaces Can extend multiple inte
Cannot be used to achieve multiple inheritance Can be used to achieve m
60. What is the difference between a constructor and a method in
Java? Provide an example.
A constructor is a special method that is used to initialize an object of a
class, whereas a method is a regular function that performs some
operation. Constructors have the same name as the class, and they don’t
have a return type, whereas methods have a return type.
Example:
public class Person {
private String name;
// Constructor
public Person(String name) {
this.name = name;
// Method
public void sayHello() {
System.out.println("Hello, my name is " + name);
// Creating a Person object using the constructor
Person john = new Person("John");
// Calling the sayHello() method
john.sayHello(); // Output: Hello, my name is John
61. What is the role of a volatile keyword in Java?
The volatile keyword in Java is used to indicate that a variable’s value
may be modified by multiple threads and should not be cached in
registers or by the processor. When a variable is marked as volatile, reads
and writes to that variable are atomic and cannot be reordered by the
compiler, ensuring that all threads see the most up-to-date value.
62. How do you implement a facade pattern in Java?
To implement the facade pattern in Java, you need to create a new class
that acts as a simplified interface to a complex subsystem of classes. The
facade class provides a high-level interface to the subsystem, hiding its
complexity from clients and providing a single point of entry for clients to
access the subsystem’s functionality.
63. What is the purpose of the try-catch-finally block in Java?
Provide an example.
The try-catch-finally block is used to handle exceptions in Java. The try
block contains the code that may throw an exception, the catch block
contains the code that handles the exception, and the final block contains
the code that is always executed, regardless of whether an exception is
thrown or not. Example:
public class Example {
public static void main(String[] args) {
try {
int result = 10 / 0; // Throws ArithmeticException
} catch (ArithmeticException e) {
System.out.println("Cannot divide by zero");
} finally {
System.out.println("Done");
64. Can you describe your experience with JavaServer Faces
(JSF)?
As an AI language model, I don’t have direct experience with JavaServer
Faces, but I can tell you that it is a popular framework for building server-
side user interfaces in Java web applications. JSF provides a component-
based architecture that allows developers to build UI components using
reusable templates, which can be combined to create complex user
interfaces.
65. What is the difference between a method and a constructor in
Java?
Method Constructor
Can have any name Must have the same
May or may not have a return type Does not have a retu
Can be called multiple times on an object Can only be called o
Can be overloaded Cannot be overloade
66. Can you explain the difference between a for loop and a while
loop in Java?
A for loop is a type of loop in Java that allows you to iterate over a range
of values or elements in a collection. A for loop typically has a counter
variable that is used to keep track of the number of iterations, and a
condition that determines when the loop should terminate.
A while loop is another type of loop in Java that allows you to repeat a
block of code while a specified condition is true. Unlike a for loop, a while
loop does not have a built-in counter variable and instead relies on a
condition that is checked before each iteration of the loop.
67. How do you implement a factory pattern in Java?
To implement a factory pattern in Java, you can define an interface or an
abstract class that specifies a method for creating objects of a particular
type. You can then create one or more concrete classes that implement
this interface or abstract class, and provide their own implementations of
the create method to create objects of the desired type. Here’s an
example implementation:
public interface AnimalFactory { public Animal createAnimal();
}
public class DogFactory implements AnimalFactory { public
Animal createAnimal()
{ return new Dog(); } } public class CatFactory implements
AnimalFactory
{ public Animal createAnimal() { return new Cat(); } }
68. What is the difference between an instance variable and a
class variable in Java?
Instance Variable Class Variable
Belongs to an object of the class Belongs to the class itself
Each object has its own copy of the variable All objects share the same copy of the va
Can have different values for each object Has the same value for all objects
Declared inside a class, outside of any method Declared inside a class, outside of any m
69. What is the role of an interface in Java?
In Java, an interface is a way to define a contract or a set of methods that
a class must implement. An interface can be thought of as a blueprint for
a class and can be used to define a common set of behaviors that can be
shared across multiple classes. Interfaces are often used in Java to enable
polymorphism and to promote code reuse and modularity.
70. Can you describe your experience with RESTful web services?
Yes, I have experience developing and consuming RESTful web services in
Java. RESTful web services provide a standard way to exchange data
between different systems over the web using HTTP protocols. In Java,
RESTful web services can be implemented using frameworks such as
Jersey or Spring Boot and can be consumed using libraries such as
Apache HttpClient or OkHttp. My experience with RESTful web services
has been positive, as they provide a flexible and scalable way to build and
consume web services.
71. How do you implement an observer pattern in Java?
To implement an observer pattern in Java, you can define an interface
that represents the observer and a class that represents the subject or
the object being observed. The subject class should maintain a list of
observers that are interested in changes to its state and should provide
methods for adding or removing observers from this list. When the state
of the subject changes, it should notify all its observers by calling a
method on each observer object. Here’s an example implementation:
public interface Observer {
public void update();
public class Subject {
private List<Observer> observers = new ArrayList<>();
public void attach(Observer observer) {
observers.add(observer);
public void detach(Observer observer) {
observers.remove(observer);
public void notifyObservers() {
for (Observer observer : observers) {
observer.update();
72. What are some of the best practices for writing secure Java
code?
Some best practices for writing secure Java code include:
Always validate user input to prevent injection attacks
Use parameterized queries to prevent SQL injection attacks
Avoid storing sensitive data in plain text or insecure storage
locations
Use strong encryption algorithms and secure key management
practices
Implement access controls to restrict unauthorized access to
sensitive data or resources
Keep software up-to-date with security patches and updates
73. Can you explain the difference between an inner class and an
outer class in Java?
In Java, an inner class is a class that is defined within another class. Inner
classes can access the private members of the outer class and can be
used to encapsulate related functionality within a single class. There are
several types of inner classes in Java, including local inner classes,
anonymous inner classes, and static nested classes.
An outer class, on the other hand, is a class that is defined outside of any
other class. Outer classes cannot access the private members of inner
classes and are typically used to encapsulate more general functionality
that is not closely related to the inner classes.
74. What is the difference between an abstract class and a
concrete class in Java?
Abstract Class Concrete Class
Cannot be instantiated Can be instantiated
Can have abstract methods Cannot have abstra
Can have constructors Must have construc
Can be extended by a concrete or abstract class Can only be extend
75. How do you implement a builder pattern in Java?
To implement a builder pattern in Java, you can define a builder class that
is responsible for constructing objects of a particular type. The builder
class should have a set of methods that correspond to the properties of
the object being constructed and should return the builder object itself to
enable method chaining. Once all the desired properties have been set on
the builder object, you can call a build method to construct the final
object. Here’s an example implementation:
public class User {
private final String username;
private final String email;
private final String password;private User(Builder builder) {
this.username = builder.username;
this.email = builder.email;
this.password = builder.password;
}public static class Builder {
private String username;
private String email;
private String password;
public Builder setUsername(String username) {
this.username = username;
return this;
}
public Builder setEmail(String email) {
this.email = email;
return this;
}public Builder setPassword(String password) {
this.password = password;
return this;
public User build() {
return new User(this);
76. Can you describe your experience with Java Database
Connectivity (JDBC)?
Yes, I have experience using JDBC to interact with relational databases in
Java. JDBC provides a standard way to connect to and query databases
using Java code and can be used to perform tasks such as executing SQL
statements, retrieving results, and managing database transactions. I
have used JDBC to work with a variety of database systems, including
MySQL, Oracle, and PostgreSQL, and have found it to be a powerful and
flexible tool for working with data in Java.
77. What is the difference between a static method and a non-
static method in Java?
Static Method Non-Static Method
Belongs to the class itself Belongs to an object
Can be called without creating an object Must be called on an
Cannot access non-static instance variables Can access non-static
Cannot be overridden Can be overridden
78. How do you implement a strategy pattern in Java?
To implement a strategy pattern in Java, you can define an interface or
an abstract class that represents a strategy or an algorithm. You can then
create one or more concrete classes that implement this interface or
abstract class, and provide their own implementations of the strategy or
algorithm. The context class that uses the strategy can then be
configured to use a particular strategy object at runtime, depending on
the specific requirements of the application. Here’s an example
implementation:
public class MyClass {
private int instanceVar;
private static int classVar;
public MyClass(int instanceVar) {
this.instanceVar = instanceVar;
}
public void printVars() {
System.out.println("Instance var: " + instanceVar);
System.out.println("Class var: " + classVar);
public static void main(String[] args) {
MyClass obj1 = new MyClass(10);
MyClass obj2 = new MyClass(20);
MyClass.classVar = 5;
obj1.printVars(); // Instance var: 10, Class var: 5
obj2.printVars(); // Instance var: 20, Class var: 5
79. What is the role of a generic type in Java?
The role of a generic type in Java is to provide a way to create reusable
classes, interfaces, and methods that can work with different types of
objects. By using generic types, you can write code that is more flexible,
type-safe, and easier to maintain.
80. How do you implement a mediator pattern in Java?
To implement the mediator pattern in Java, you need to create a mediator
object that acts as a central hub for communication between other objects
in a system. The mediator object encapsulates the communication logic
and allows objects to communicate with each other without being tightly
coupled.
81. What is the difference between overloading and overriding in
Java?
Overloading Overriding
Occurs when a class has multiple methods with the same name but Occurs when a subclass provides
different parameters defined in its superclass
Static binding Dynamic binding
Compile-time polymorphism Runtime polymorphism
Does not change the method signature Must have the same method sign
82. Can you describe your experience with Java Message Service
(JMS)?
As an AI language model, I don’t have direct experience with Java
Message Service, but I can tell you that it is a Java API that provides a
way for applications to send and receive messages asynchronously. JMS
supports different messaging styles such as point-to-point and publish-
subscribe, and it is commonly used in enterprise applications to facilitate
communication between distributed components.
83. What is the difference between a String and a StringBuilder in
Java? Provide an example.
A String is an immutable object that cannot be modified once created,
whereas a StringBuilder is a mutable object that can be modified.
Example:
String str = "Hello";
str = str + " world"; // Creates a new String object
StringBuilder sb = new StringBuilder("Hello");
sb.append(" world"); // Modifies the existing StringBuilder
object
84. How do you implement a chain of responsibility pattern in
Java?
To implement the chain of responsibility pattern in Java, you need to
create a chain of objects that can handle requests or tasks in sequential
order. Each object in the chain has a reference to the next object in the
chain, and if an object can’t handle a request, it forwards it to the next
object in the chain until the request is handled or the end of the chain is
reached.
85. What is the role of annotation in Java?
The role of annotation in Java is to provide metadata or additional
information about a class, method, or field at compile time or runtime.
Annotations are used by Java tools and frameworks to generate code,
validate code, or perform other tasks based on the information provided
by the annotations.
86. What is the difference between a checked exception and an
unchecked exception in Java?
Checked Exception Unchecked Exception
Must be handled or declared in the method signature Does not need to be handled or declared i
Examples include IOException, SQLException, etc. Examples include NullPointerException,
Checked at compile-time Not checked at compile-time
87. How do you implement a composite pattern in Java?
To implement the composite pattern in Java, you need to create a
hierarchy of objects where each object can either be a leaf object or a
composite object that contains other objects. The composite object has a
list of child objects and provides a way to treat both leaf and composite
objects uniformly.
88. Can you describe your experience with Java Persistence API
(JPA)?
As an AI language model, I don’t have direct experience with Java
Persistence API, but I can tell you that it is a Java API for managing
relational data in applications using Object-Relational Mapping (ORM)
techniques. JPA provides a way to map Java objects to database tables,
and it supports different data access patterns such as the Repository
pattern and the DAO pattern.
89. How do you implement a state pattern in Java?
To implement the state pattern in Java, you need to create a set of
classes that represent different states of an object, and a context class
that maintains a reference to the current state object. The state objects
define the behavior of the context object based on its current state, and
the context object delegates to the current state object to perform
operations.
90. What is the role of an enum in Java?
The role of enum in Java is to provide a way to represent a fixed set of
values as a named collection of constants. Enums are often used to
represent things like days of the week, months of the year, or colors, and
they provide a type-safe and readable way to work with a set of related
constants
91. What is the difference between an ArrayList and a LinkedList
in Java?
ArrayList LinkedList
Implements the List interface using an array Implements the List i
Faster for random access and iteration Slower for random ac
Slower for insertion and deletion Faster for insertion an
Resizes automatically when elements are added or removed Does not resize autom
Cannot be used as a queue or a stack Can be used as a queu
92. What is the difference between a while loop and a do-while
loop in Java? Provide an example.
A while loop checks the condition before executing the loop, whereas a
do-while loop checks the condition after executing the loop at least once.
Example:
// while loop example
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
// do-while loop example
int j = 0;
do {
System.out.println(j);
j++;
} while (j < 5);
92. How can you handle Java exceptions?
There are five keywords used to handle exceptions in Java:
try
catch
finally
throw
throws
93. Is it possible that the ‘finally’ block will not be executed? If
yes then list the case.
Yes. It is possible that the ‘finally’ block will not be executed. The cases
are-
Suppose we use System. exit() in the above statement.
If there are fatal errors like Stack overflow, Memory access error,
etc.
94. Can the static methods be overloaded?
Yes! There can be two or more static methods in a class with the same
name but differing input parameters.
95. What is a ClassLoader?
Java Classloader is the program that belongs to JRE (Java Runtime
Environment). The task of ClassLoader is to load the required classes and
interfaces to the JVM when required.
Example- To get input from the console, we require the scanner class.
And the Scanner class is loaded by the ClassLoade
96. What is a singleton class in Java? And How to implement a
singleton class?
Singleton classes are those classes, whose objects are created only once.
And with only that object the class members can be accessed.
97. What is the difference between the program and the process?
A program can be defined as a line of code written in order to accomplish
a particular task. Whereas the process can be defined as the programs
which are under execution.
A program doesn’t execute directly by the CPU. First, the resources are
allocated to the program and when it is ready for execution then it is a
process
98. Can we make the main() thread a daemon thread?
In Java multithreading, the main() threads are always non-daemon
threads. And there is no way we can change the nature of the non-
daemon thread to the daemon thread
99. How is the ‘new’ operator different from the ‘newInstance()’
operator in Java?
Both ‘new’ and ‘newInstance()’ operators are used to create objects. The
difference is- that when we already know the class name for which we
have to create the object then we use a new operator. But suppose we
don’t know the class name for which we need to create the object, Or we
get the class name from the command line argument, or the database, or
the file. Then in that case we use the ‘newInstance()’ operator.
100. 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