i
EpVi
Filter interviews by
I applied via LinkedIn and was interviewed in May 2024. There were 3 interview rounds.
10-15 questions assignment which took 2-3 hours to complete
My CTC expectations are based on industry standards and my experience level.
Research industry standards for Senior Executives
Consider my level of experience and expertise
Negotiate based on company's budget and benefits package
I applied via LinkedIn and was interviewed in Nov 2023. There was 1 interview round.
I applied via Naukri.com and was interviewed before May 2023. There was 1 interview round.
I was interviewed in Feb 2025.
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...
== 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 ...
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...
I applied via LinkedIn and was interviewed in Jul 2024. There was 1 interview round.
Computer Science engineering subject only
I had a very good experience.
Verbal and logical reasoning questions.
Data structures and algorithms questions and others.
I applied via Referral and was interviewed in Jul 2023. There were 2 interview rounds.
Online Assessment - 1 Hrs
based on 1 interview
Interview experience
Beyondriffs
Bluestock ™
Waah Jobs
Propelld