i
10405090xyzabc
Filter interviews by
I appeared for an interview in Mar 2025, where I was asked the following questions.
ArrayList uses dynamic arrays, while LinkedList uses doubly linked nodes for storage, affecting performance and memory usage.
ArrayList is backed by a dynamic array, allowing fast random access (O(1)). Example: accessing element at index 5 is quick.
LinkedList consists of nodes, each containing data and pointers to next/previous nodes, making insertions/removals faster (O(1)).
ArrayList has a fixed size; resizing involves...
Java's synchronized keyword offers thread safety but has limitations compared to ReentrantLock.
Advantages of synchronized: Simple to use and understand.
Disadvantages of synchronized: Can lead to thread contention and is not interruptible.
ReentrantLock allows for more advanced features like tryLock() and timed lock attempts.
ReentrantLock can be more flexible with lock management, allowing for multiple conditions.
In Java, '==' checks reference equality, while '.equals()' checks value equality. Use them appropriately to avoid bugs.
== compares object references (memory addresses). Example: String a = new String('test'); String b = new String('test'); a == b is false.
.equals() compares actual content/values of objects. Example: a.equals(b) is true.
Use '==' for primitive types (int, char, etc.) and .equals() for objects.
Improper us...
Java 8 introduced lambdas, Stream API, and other features that enhance functional programming and improve code readability.
Lambda Expressions: Allow concise representation of functional interfaces. Example: (x, y) -> x + y.
Stream API: Enables functional-style operations on collections. Example: list.stream().filter(x -> x > 10).collect(Collectors.toList()).
Default Methods: Interfaces can have methods with impl...
Checked exceptions must be handled or declared, while unchecked exceptions do not require explicit handling.
Checked exceptions are subclasses of Exception (excluding RuntimeException). Example: IOException.
Unchecked exceptions are subclasses of RuntimeException. Example: NullPointerException.
Checked exceptions must be either caught using try-catch or declared in the method signature with 'throws'.
Unchecked exceptions c...
The Java Memory Model defines how threads interact through memory, ensuring visibility and ordering in multithreaded environments.
The Java Memory Model (JMM) specifies how variables are read and written in a multithreaded context.
It ensures visibility of shared variables between threads, preventing stale data issues.
Synchronization mechanisms (like synchronized blocks) enforce mutual exclusion and visibility.
The 'volat...
Method overloading allows multiple methods with the same name but different parameters; overriding redefines a method in a subclass.
Method Overloading: Same method name, different parameter lists (type, number, or both).
Example of Overloading: public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; }
Use Case for Overloading: When you want to perform similar operations with d...
I appeared for an interview in Mar 2025, where I was asked the following questions.
I appeared for an interview in Feb 2025, where I was asked the following questions.
ArrayList is a resizable array, while LinkedList is a doubly linked list. Choose based on performance needs.
ArrayList: Faster for random access (O(1)). Example: list.get(5);
LinkedList: Faster for insertions/deletions (O(1)) at both ends. Example: list.addFirst('A');
ArrayList: Uses less memory overhead compared to LinkedList.
LinkedList: Better for frequent insertions/deletions in the middle of the list.
ArrayList: Requir...
Java's synchronized keyword provides thread safety but has limitations compared to ReentrantLock.
Advantages of synchronized: Simple to use, built-in language feature.
Disadvantages of synchronized: Can lead to thread contention, no timeout options.
ReentrantLock allows more flexibility: supports tryLock(), lockInterruptibly().
ReentrantLock can be more efficient in high contention scenarios.
Example of synchronized: synchr...
== checks reference equality, while .equals() checks value equality in Java. Use .equals() for content comparison.
== compares object references (memory addresses). Example: String a = new String('test'); String b = new String('test'); a == b returns false.
.equals() compares actual content of objects. Example: a.equals(b) returns true.
Use == for primitive types (int, char, etc.) and .equals() for objects.
Improper use of...
Java's garbage collector automatically manages memory by reclaiming unused objects, improving performance and preventing memory leaks.
Garbage Collection (GC) is the process of automatically identifying and disposing of objects that are no longer needed.
Java uses several GC algorithms, including Serial, Parallel, CMS (Concurrent Mark-Sweep), and G1 (Garbage-First).
The Serial GC is a simple, single-threaded collector sui...
Java 8 introduced lambdas, Stream API, and other features that enhance functional programming and improve code readability.
Lambdas: Enable concise representation of functional interfaces. Example: (x, y) -> x + y.
Stream API: Allows processing sequences of elements (collections) in a functional style. Example: list.stream().filter(x -> x > 10).collect(Collectors.toList()).
Default Methods: Interfaces can have me...
Checked exceptions must be declared or handled; unchecked exceptions do not require explicit handling.
Checked exceptions are subclasses of Exception but not of RuntimeException.
Example of checked exception: IOException, which must be caught or declared.
Unchecked exceptions are subclasses of RuntimeException.
Example of unchecked exception: NullPointerException, which does not need to be declared.
Checked exceptions are t...
The Java Memory Model defines how threads interact through memory, ensuring visibility and ordering of shared variables.
The Java Memory Model (JMM) specifies how threads interact with memory, ensuring consistency and visibility of shared variables.
It defines rules for visibility, atomicity, and ordering of operations in a multithreaded environment.
Without proper synchronization, threads may see stale or inconsistent da...
Method overloading allows multiple methods with the same name but different parameters; overriding allows subclass methods to replace superclass methods.
Method Overloading: Same method name, different parameter types or counts.
Example of Overloading: 'int add(int a, int b)' and 'double add(double a, double b)'.
Use Overloading for convenience and readability when performing similar operations.
Method Overriding: Same met...
Functional interfaces in Java are interfaces with a single abstract method, enabling lambda expressions for concise code.
A functional interface has exactly one abstract method.
They can have multiple default or static methods.
Common examples include Runnable, Callable, and Comparator.
Lambda expressions provide a clear and concise way to implement functional interfaces.
Example of a custom functional interface: @Functiona...
Java Streams provide a functional approach to processing sequences of elements, unlike Iterators which are imperative.
Streams are part of the Java 8+ API, enabling functional-style operations on collections.
Unlike Iterators, Streams do not store data; they process data on-the-fly.
Streams support operations like map, filter, and reduce, allowing for concise and readable code.
Example: List<String> names = Arrays.as...
Immutability in Java means objects cannot be modified after creation, enhancing security and performance.
1. Immutability: Once created, an object's state cannot be changed.
2. String Class: Strings in Java are immutable; any modification creates a new String object.
3. Example: String s1 = "Hello"; s1 = s1 + " World!"; // s1 now points to a new String object.
4. Advantages: Thread-safe, easier to cache, and can be used as...
final, finally, and finalize serve different purposes in Java: variable declaration, exception handling, and garbage collection respectively.
final: Used to declare constants. Example: final int MAX_VALUE = 100;
finally: Block that executes after try-catch, regardless of exceptions. Example: try { ... } catch { ... } finally { ... }
finalize: Method called by the garbage collector before an object is removed. Example: pro
The Singleton pattern restricts instantiation of a class to one object, ensuring controlled access to that instance.
1. The Singleton pattern ensures a class has only one instance and provides a global point of access to it.
2. Common implementations include lazy initialization, eager initialization, and double-checked locking.
3. Lazy initialization: Create the instance when it is needed, using synchronized method for th...
Java annotations provide metadata for classes, methods, and fields, enhancing functionality in frameworks like Spring.
Annotations are metadata that provide information about the program but are not part of the program itself.
In Spring, annotations like @Component, @Service, and @Controller are used for defining beans and their roles.
Built-in annotations include @Override, @Deprecated, and @SuppressWarnings, which serve...
Java Streams enable parallel processing for efficient data handling but come with potential pitfalls that need careful management.
Java Streams can be processed in parallel using the 'parallelStream()' method, which divides the workload across multiple threads.
Parallel streams utilize the Fork/Join framework, allowing tasks to be split and executed concurrently, improving performance for large datasets.
Potential pitfall...
ArrayList offers fast access and is memory efficient, while LinkedList excels in insertions and deletions.
ArrayList provides O(1) access time, making it ideal for frequent retrievals.
LinkedList allows O(1) insertions/deletions at both ends, suitable for dynamic data structures.
Example: Use ArrayList for a list of user names where retrieval is frequent.
Example: Use LinkedList for a playlist where songs are frequently ad...
== checks reference equality; .equals() checks value equality, can be overridden for custom comparison.
== compares memory addresses: new String("hello") == new String("hello") returns false.
.equals() compares actual content: "hello".equals("hello") returns true.
Override equals() when logical equality differs from reference equality, e.g., in custom classes.
When overriding equals(), also override hashCode() to maintain ...
Java's garbage collector automatically manages memory, reclaiming space from unused objects through various algorithms.
Garbage collection in Java is automatic, freeing developers from manual memory management.
The JVM uses different GC algorithms: Serial, Parallel, CMS, and G1, each with unique characteristics.
Memory is divided into Young Generation (short-lived objects) and Old Generation (long-lived objects).
Minor GC ...
Lambda expressions enhance Java code readability and maintainability by simplifying syntax and promoting functional programming.
Concise Syntax: Lambda expressions reduce boilerplate code. For example, instead of writing an anonymous class for a Runnable, you can use: `Runnable r = () -> System.out.println("Hello");`
Improved Readability: Code becomes more expressive. For instance, using `list.forEach(item -> Syste...
ArrayList uses dynamic arrays, while LinkedList uses doubly linked nodes for storage and access.
ArrayList provides fast random access (O(1)) due to its underlying array structure.
LinkedList allows for efficient insertions and deletions (O(1)) at both ends, as it only requires pointer updates.
ArrayList has a fixed size, which can lead to resizing (O(n)) when capacity is exceeded, while LinkedList grows dynamically.
Examp...
In Java, '==' checks reference equality, while '.equals()' checks value equality. Use appropriately to avoid bugs.
== compares object references (memory addresses). Example: String a = new String('test'); String b = new String('test'); a == b is false.
.equals() compares the actual content of objects. Example: a.equals(b) is true.
Use '==' for primitive types (int, char, etc.) and .equals() for objects.
Improper use of '==...
Java's garbage collector automatically manages memory by reclaiming unused objects, optimizing performance and resource usage.
Java uses automatic garbage collection to manage memory, freeing developers from manual memory management.
The main garbage collection algorithms in Java include: Serial GC, Parallel GC, Concurrent Mark-Sweep (CMS), and G1 GC.
Serial GC is a simple, single-threaded collector suitable for small app...
Java 8 introduced lambdas, Stream API, and other features that enhance functional programming and improve code readability.
Lambdas: Enable concise representation of functional interfaces. Example: (x, y) -> x + y.
Stream API: Facilitates functional-style operations on collections. Example: list.stream().filter(x -> x > 10).collect(Collectors.toList()).
Default Methods: Allow adding new methods to interfaces with...
Checked exceptions must be declared or handled, while unchecked exceptions do not require explicit handling.
Checked exceptions are subclasses of Exception but not RuntimeException.
Example: IOException is a checked exception that must be caught or declared.
Unchecked exceptions are subclasses of RuntimeException.
Example: NullPointerException is an unchecked exception that does not need to be declared.
Checked exceptions e...
The Java Memory Model defines how threads interact through memory, ensuring visibility and ordering of shared variables.
The Java Memory Model (JMM) specifies how threads interact through memory and what behaviors are allowed.
It ensures visibility of shared variables between threads, preventing stale data issues.
Synchronization mechanisms (like synchronized blocks) enforce mutual exclusion and visibility.
The 'volatile' ...
Method overloading allows multiple methods with the same name but different parameters; overriding replaces a superclass method in a subclass.
Method Overloading: Same method name, different parameter types or counts.
Example of Overloading: 'int add(int a, int b)' and 'double add(double a, double b)'.
Use Overloading for convenience and readability when methods perform similar functions.
Method Overriding: Same method nam...
10405090xyzabc interview questions for designations
I appeared for an interview in Feb 2025, where I was asked the following questions.
ArrayList uses dynamic arrays, while LinkedList uses doubly linked nodes for storage, affecting performance and memory usage.
ArrayList is backed by a dynamic array, allowing fast random access (O(1)). Example: ArrayList<String> list = new ArrayList<>();
LinkedList is backed by a doubly linked list, allowing efficient insertions and deletions (O(1) at both ends). Example: LinkedList<String> list = new L...
Java's synchronized keyword provides thread safety but has limitations compared to ReentrantLock.
Advantages of synchronized: Simple to use and understand.
Disadvantages of synchronized: Can lead to thread contention and performance issues.
ReentrantLock allows more flexibility, such as tryLock() and timed lock attempts.
ReentrantLock can be used for fair locking, preventing thread starvation.
Synchronized blocks are tied t...
In Java, '==' checks reference equality, while '.equals()' checks value equality. Use them appropriately to avoid bugs.
== compares object references, checking if both refer to the same memory location.
Example: String a = new String('test'); String b = new String('test'); a == b returns false.
.equals() compares the actual content of the objects.
Example: a.equals(b) returns true in the above case.
Use '==' for primitive t...
Java's garbage collector automatically manages memory by reclaiming unused objects, enhancing performance and preventing memory leaks.
Java uses automatic garbage collection to manage memory, freeing developers from manual memory management.
The main garbage collection algorithms in Java include: Serial GC, Parallel GC, Concurrent Mark-Sweep (CMS), and G1 GC.
Serial GC is a simple, single-threaded collector suitable for s...
Java 8 introduced lambdas, Stream API, and other features that enhance functional programming and simplify code.
Lambdas: Enable concise representation of functional interfaces. Example: (x, y) -> x + y.
Stream API: Allows processing sequences of elements (collections) in a functional style. Example: list.stream().filter(x -> x > 10).collect(Collectors.toList()).
Default Methods: Interfaces can have methods with ...
Checked exceptions must be declared or handled, while unchecked exceptions do not require explicit handling.
Checked exceptions are subclasses of Exception (excluding RuntimeException). Example: IOException.
Unchecked exceptions are subclasses of RuntimeException. Example: NullPointerException.
Checked exceptions must be caught or declared in the method signature using 'throws'.
Unchecked exceptions can be caught but are n...
The Java Memory Model defines how threads interact through memory, ensuring visibility and ordering of shared variables.
The Java Memory Model (JMM) specifies how threads interact with memory, ensuring consistency and visibility of shared variables.
It defines rules for visibility, atomicity, and ordering of operations, crucial for multithreading.
Without proper synchronization, threads may see stale data due to caching o...
Method overloading allows multiple methods with the same name but different parameters; overriding redefines a method in a subclass.
Method Overloading: Same method name, different parameter types or counts.
Example of Overloading: 'int add(int a, int b)' and 'double add(double a, double b)'.
Use Overloading for convenience and readability when performing similar operations.
Method Overriding: Redefining a method in a subc...
Get interview-ready with Top 10405090xyzabc Interview Questions
I appeared for an interview in Feb 2025, where I was asked the following questions.
ArrayList is dynamic and index-based, while LinkedList is node-based and allows for efficient insertions and deletions.
ArrayList uses a dynamic array to store elements, allowing for fast random access. Example: ArrayList<String> arrayList = new ArrayList<>();
LinkedList uses a doubly linked list structure, making it efficient for insertions and deletions. Example: LinkedList<String> linkedList = new Li...
Java's synchronized keyword offers thread safety but has limitations compared to ReentrantLock.
Advantages of synchronized: Simple to use, built-in language feature.
Disadvantages of synchronized: Can lead to thread contention and deadlocks.
ReentrantLock allows more flexibility, such as tryLock() for non-blocking attempts.
ReentrantLock supports fairness policies, which can prevent thread starvation.
Synchronized blocks ar...
== checks reference equality, while .equals() checks value equality in Java objects.
== compares memory addresses (references) of objects.
Example: String a = new String("test"); String b = new String("test"); a == b returns false.
.equals() compares the actual content of objects.
Example: a.equals(b) returns true for the same content.
Use == for primitive types (int, char, etc.) and .equals() for object comparisons.
Imprope...
Java's garbage collector automatically manages memory by reclaiming unused objects, improving performance and preventing memory leaks.
Java uses automatic memory management to free up memory occupied by objects that are no longer in use.
The main types of garbage collection algorithms in Java include: Serial, Parallel, Concurrent Mark-Sweep (CMS), and G1 (Garbage-First).
The Serial Garbage Collector is simple and suitable...
Java 8 introduced lambdas, Stream API, and other features that enhance functional programming and improve code readability.
Lambda Expressions: Allow for concise representation of functional interfaces. Example: (a, b) -> a + b.
Stream API: Enables functional-style operations on collections. Example: list.stream().filter(x -> x > 10).collect(Collectors.toList()).
Default Methods: Interfaces can have methods with ...
Checked exceptions must be declared or handled, while unchecked exceptions do not require explicit handling.
Checked exceptions are subclasses of Exception but not of RuntimeException.
Example of checked exception: IOException, which must be handled or declared.
Unchecked exceptions are subclasses of RuntimeException.
Example of unchecked exception: NullPointerException, which does not need to be declared.
Checked exception...
The Java Memory Model defines how threads interact through memory, ensuring visibility and ordering of shared variables.
The Java Memory Model (JMM) specifies how threads read and write shared variables.
It ensures visibility of changes made by one thread to others, preventing stale data.
Synchronization mechanisms (like synchronized blocks) enforce mutual exclusion and visibility.
The 'volatile' keyword ensures that a var...
Method overloading allows multiple methods with the same name but different parameters, while overriding replaces a superclass method in a subclass.
Method Overloading: Same method name, different parameter types or counts.
Example of Overloading: 'int add(int a, int b)' and 'double add(double a, double b)'.
Use Overloading for convenience and readability when methods perform similar functions.
Method Overriding: Same meth...
I appeared for an interview in Feb 2025, where I was asked the following questions.
ArrayList uses dynamic arrays, while LinkedList uses doubly linked nodes for storage and access.
ArrayList provides fast random access (O(1)) due to its underlying array structure.
LinkedList allows for efficient insertions and deletions (O(1)) at both ends and in the middle.
ArrayList has a fixed size, requiring resizing (O(n)) when capacity is exceeded, while LinkedList grows dynamically.
Example: Use ArrayList for frequ...
Java's synchronized keyword offers thread safety but has limitations compared to ReentrantLock.
Advantages of synchronized: Simple to use and understand.
Disadvantages of synchronized: Can lead to thread contention and performance issues.
ReentrantLock allows more flexibility, such as tryLock() and timed lock attempts.
ReentrantLock can be used for fair locking, preventing thread starvation.
Synchronized blocks are tied to ...
In Java, '==' checks reference equality, while '.equals()' checks value equality. Use them appropriately to avoid bugs.
== compares object references, checking if both point to the same memory location.
Example: String a = new String('test'); String b = new String('test'); a == b returns false.
.equals() compares the actual content of the objects.
Example: a.equals(b) returns true because the content is the same.
Use '==' f...
Java's garbage collector automatically manages memory by reclaiming unused objects, enhancing performance and preventing memory leaks.
Java uses automatic memory management through garbage collection.
The main types of garbage collection algorithms are: Serial, Parallel, Concurrent Mark-Sweep (CMS), and G1 (Garbage-First).
Serial GC is suitable for small applications with a single thread.
Parallel GC uses multiple threads ...
Java 8 introduced lambdas, Stream API, and other features that enhance functional programming and simplify code.
Lambdas: Enable concise representation of functional interfaces. Example: (x, y) -> x + y.
Stream API: Facilitates functional-style operations on collections. Example: list.stream().filter(x -> x > 10).collect(Collectors.toList()).
Default Methods: Allow adding new methods to interfaces without breakin...
Checked exceptions must be declared or handled, while unchecked exceptions do not require explicit handling.
Checked exceptions are subclasses of Exception but not of RuntimeException.
Example: IOException, SQLException are checked exceptions.
Unchecked exceptions are subclasses of RuntimeException.
Example: NullPointerException, ArrayIndexOutOfBoundsException are unchecked exceptions.
Checked exceptions must be caught or d...
The Java Memory Model defines how threads interact through memory, ensuring visibility and ordering of shared variables.
The Java Memory Model (JMM) specifies how threads interact with memory, ensuring consistency and visibility.
It defines rules for visibility, atomicity, and ordering of operations in a multithreaded environment.
Synchronization mechanisms (like synchronized blocks) ensure that only one thread can access...
Method overloading allows multiple methods with the same name but different parameters; overriding redefines a method in a subclass.
Method Overloading: Same method name, different parameters (type, number, or both).
Example of Overloading: 'void add(int a, int b)' and 'void add(double a, double b)'.
Use Overloading for convenience and readability when methods perform similar functions.
Method Overriding: Redefining a meth...
I appeared for an interview in Feb 2025, where I was asked the following questions.
ArrayList uses dynamic arrays, while LinkedList uses doubly linked nodes for storage. Choose based on performance needs.
ArrayList is backed by a dynamic array, allowing fast random access. Example: accessing an element by index is O(1).
LinkedList consists of nodes that hold data and references to the next and previous nodes, making insertions/deletions O(1) if the node is known.
ArrayList has a fixed size, which can lea...
== checks reference equality, while .equals() checks value equality in Java objects.
== compares memory addresses (references) of objects.
Example: String a = new String("test"); String b = new String("test"); a == b returns false.
.equals() compares the actual content of objects.
Example: a.equals(b) returns true because the content is the same.
Use == for primitive types (int, char, etc.) and .equals() for object comparis...
Java's garbage collector automatically manages memory by reclaiming unused objects, improving performance and preventing memory leaks.
Java uses automatic garbage collection to manage memory, freeing developers from manual memory management.
The main garbage collection algorithms in Java include: Serial, Parallel, Concurrent Mark-Sweep (CMS), and G1 (Garbage-First).
The Serial GC is a simple, single-threaded collector sui...
Java 8 introduced lambdas, Stream API, and other features that enhance functional programming and simplify code.
Lambdas: Enable concise representation of functional interfaces. Example: (x, y) -> x + y.
Stream API: Allows processing sequences of elements (collections) in a functional style. Example: list.stream().filter(x -> x > 10).
Default Methods: Interfaces can have method implementations, promoting backward...
Checked exceptions must be handled or declared, while unchecked exceptions do not require explicit handling.
Checked exceptions are subclasses of Exception but not RuntimeException.
Example: IOException is a checked exception that must be caught or declared.
Unchecked exceptions are subclasses of RuntimeException.
Example: NullPointerException is an unchecked exception that can occur at runtime.
Checked exceptions are typic...
The Java Memory Model defines how threads interact through memory, ensuring visibility and ordering of shared variables.
The Java Memory Model (JMM) specifies how threads interact with memory, ensuring consistency and visibility.
It defines rules for visibility, atomicity, and ordering of operations in a multithreaded environment.
Synchronization mechanisms (like synchronized blocks) ensure that only one thread can access...
Method overloading allows multiple methods with the same name but different parameters, while overriding redefines a method in a subclass.
Method Overloading: Same method name, different parameters (e.g., different types or number of parameters).
Example of Overloading: 'void add(int a, int b)' and 'void add(double a, double b)'.
Use Overloading when you want to perform similar operations with different types or numbers o...
I appeared for an interview in Feb 2025, where I was asked the following questions.
ArrayList uses a dynamic array for storage, while LinkedList uses a doubly linked list structure.
ArrayList provides fast random access (O(1)) due to its underlying array structure.
LinkedList allows for efficient insertions and deletions (O(1)) at both ends and in the middle.
ArrayList has a fixed size, requiring resizing (O(n)) when capacity is exceeded, while LinkedList grows dynamically.
Example: Use ArrayList for freq...
Java's synchronized keyword offers simplicity but has limitations compared to ReentrantLock in flexibility and performance.
Synchronized is easy to use and requires less code, e.g., 'synchronized(this) { ... }'.
It can lead to thread contention and performance bottlenecks in high-concurrency scenarios.
Synchronized blocks are not interruptible, meaning a thread cannot be stopped while waiting for a lock.
ReentrantLock prov...
== checks reference equality, while .equals() checks value equality in Java objects.
== compares memory addresses (references) of objects.
Example: String a = new String("test"); String b = new String("test"); a == b returns false.
.equals() compares the actual content of objects.
Example: a.equals(b) returns true for the same content.
Use == for primitive types (int, char, etc.) and .equals() for object comparisons.
Imprope...
Java's garbage collector automatically manages memory by reclaiming unused objects, enhancing performance and preventing memory leaks.
Java uses automatic memory management through garbage collection.
The main types of garbage collection algorithms are: Serial, Parallel, Concurrent Mark-Sweep (CMS), and G1 (Garbage-First).
Serial GC is suitable for small applications with a single thread, using a simple stop-the-world app...
Java 8 introduced lambdas, Stream API, and other features that enhance functional programming and improve code readability.
Lambdas: Enable concise representation of functional interfaces. Example: (x, y) -> x + y.
Stream API: Facilitates functional-style operations on collections. Example: list.stream().filter(x -> x > 10).collect(Collectors.toList()).
Default Methods: Allow adding new methods to interfaces with...
Checked exceptions must be handled or declared, while unchecked exceptions do not require explicit handling.
Checked exceptions are subclasses of Exception, excluding RuntimeException and its subclasses.
Unchecked exceptions are subclasses of RuntimeException and Error.
Example of checked exception: IOException, which must be caught or declared in the method signature.
Example of unchecked exception: NullPointerException, ...
The Java Memory Model defines how threads interact through memory, ensuring visibility and ordering of shared variables.
The Java Memory Model (JMM) specifies how threads interact through memory and what behaviors are allowed.
It ensures visibility of shared variables between threads, preventing stale data issues.
Synchronization mechanisms (like synchronized blocks) enforce mutual exclusion and visibility.
The 'volatile' ...
Method overloading allows multiple methods with the same name but different parameters; overriding replaces a superclass method in a subclass.
Method Overloading: Same method name, different parameters (type, number, or both).
Example of Overloading: 'int add(int a, int b)' and 'double add(double a, double b)'.
Use Overloading for convenience and readability when methods perform similar functions.
Method Overriding: Redefi...
I appeared for an interview in Feb 2025, where I was asked the following questions.
ArrayList uses dynamic arrays, while LinkedList uses doubly linked nodes for storage. Choose based on performance needs.
ArrayList is backed by a dynamic array, allowing fast random access. Example: accessing an element by index is O(1).
LinkedList consists of nodes that hold data and references to the next and previous nodes, making insertions/deletions O(1) if the node is known.
ArrayList has a fixed size, and resizing ...
Java's synchronized keyword offers thread safety but has limitations compared to ReentrantLock.
Advantages of synchronized: Simple to use and understand.
Disadvantages of synchronized: Can lead to thread contention and performance issues.
ReentrantLock allows more flexibility, such as tryLock() and timed lock attempts.
ReentrantLock can be used for fair locking, preventing thread starvation.
Synchronized blocks are tied to ...
== checks reference equality, while .equals() checks value equality in Java objects.
== compares memory addresses (references) of objects.
Example: String a = new String("test"); String b = new String("test"); a == b returns false.
.equals() compares the actual content of objects.
Example: a.equals(b) returns true.
Use == for primitive types (int, char, etc.) and .equals() for object comparisons.
Improper use of == can lead
Java's garbage collector automatically manages memory by reclaiming unused objects, enhancing performance and preventing memory leaks.
Java uses automatic garbage collection to manage memory, freeing developers from manual memory management.
The main garbage collection algorithms in Java include: Serial GC, Parallel GC, Concurrent Mark-Sweep (CMS), and G1 GC.
Serial GC is a simple, single-threaded collector suitable for s...
Java 8 introduced lambdas and the Stream API, enhancing functional programming and data processing capabilities.
Lambdas: Enable concise representation of functional interfaces, e.g., (x, y) -> x + y.
Stream API: Facilitates functional-style operations on collections, e.g., list.stream().filter(x -> x > 10).collect(Collectors.toList()).
Default Methods: Allow adding new methods to interfaces without breaking exis...
Checked exceptions must be declared or handled, while unchecked exceptions do not require explicit handling in Java.
Checked exceptions are subclasses of Exception but not of RuntimeException.
Unchecked exceptions are subclasses of RuntimeException.
Example of checked exception: IOException, which must be caught or declared.
Example of unchecked exception: NullPointerException, which does not require explicit handling.
Chec...
The Java Memory Model defines how threads interact through memory, ensuring visibility and ordering of shared variables.
The Java Memory Model (JMM) specifies how threads interact through memory and what behaviors are allowed.
It ensures visibility of shared variables across threads, preventing stale data issues.
Synchronization mechanisms (like synchronized blocks) enforce mutual exclusion and visibility.
The 'volatile' k...
Method overloading allows multiple methods with the same name but different parameters; overriding redefines a method in a subclass.
Method Overloading: Same method name, different parameter types or counts.
Example of Overloading: 'int add(int a, int b)' and 'double add(double a, double b)'.
Use Overloading for convenience and readability when methods perform similar functions.
Method Overriding: Redefining a method in a ...
Some of the top questions asked at the 10405090xyzabc Software Engineer interview -
The duration of 10405090xyzabc Software Engineer interview process can vary, but typically it takes about 2-4 weeks to complete.
based on 18 interviews
Interview experience
based on 1 review
Rating in categories
Software Developer
15.6k
salaries
| ₹1.3 L/yr - ₹8.2 L/yr |
Software Engineer
10k
salaries
| ₹1 L/yr - ₹5.4 L/yr |
Sales Officer
712
salaries
| ₹5.3 L/yr - ₹5.7 L/yr |
Softwaretest Engineer
25
salaries
| ₹1 L/yr - ₹1.9 L/yr |
Test Engineer
12
salaries
| ₹1.8 L/yr - ₹7.3 L/yr |
Amazon
Mahindra & Mahindra
Delhivery
Siemens