1. What is the difference between ==
and .equals()
in Java?
==
is used to compare reference equality, i.e., whether two objects refer to the same memory location..equals()
is a method used to compare content equality, i.e., whether two objects have the same content.
2. What is the difference between ArrayList
and LinkedList
in Java?
ArrayList
internally uses a dynamic array to store elements, allowing fast random access but slower insertion and deletion.LinkedList
internally uses a doubly linked list, providing fast insertion and deletion but slower random access.
3. Explain the concept of inheritance in Java.
- Inheritance allows a class (subclass) to inherit properties and behaviors from another class (superclass).
- Subclasses can extend the functionality of the superclass by adding new methods or overriding existing ones.
4. What is the difference between interface
and abstract class
in Java?
- An
interface
only contains abstract methods and constants, whereas anabstract class
can have both abstract and concrete methods. - A class can implement multiple interfaces but can only extend one abstract class.
5. What is a constructor in Java?
- A constructor is a special method used to initialize objects of a class.
- It has the same name as the class and does not have a return type.
- Constructors can be parameterized or default (no-argument).
6. Explain the static
keyword in Java.
static
is a keyword used to declare members (variables and methods) that belong to the class rather than instances of the class.- Static members are shared among all instances of the class and can be accessed using the class name.
7. What is method overloading and method overriding in Java?
- Method overloading is the process of defining multiple methods in a class with the same name but different parameters.
- Method overriding occurs when a subclass provides a specific implementation for a method that is already defined in its superclass.
8. What is the difference between final
, finally
, and finalize
in Java?
final
is a keyword used to declare constants, prevent method overriding, or make a class immutable.finally
is a block used to execute code after a try-catch block, ensuring that cleanup code is always executed, regardless of whether an exception occurs.finalize
is a method called by the garbage collector before reclaiming an object’s memory; however, it’s generally not recommended to rely on it for resource cleanup.
9. Explain the concept of multithreading in Java.
- Multithreading allows concurrent execution of multiple threads within a single process.
- Java provides built-in support for multithreading through the
Thread
class or by implementing theRunnable
interface.
10. What is the try-with-resources
statement in Java?
- The
try-with-resources
statement is used to automatically close resources (such as streams, readers, or connections) that are opened within its block. - It ensures that resources are closed properly, even if an exception occurs, by automatically invoking the
close()
method of each resource.