Filter interviews by
I applied via Naukri.com and was interviewed in Mar 2024. There were 2 interview rounds.
Spring Boot is a framework that simplifies the development of Java applications by providing pre-configured settings and tools.
Spring Boot follows a convention over configuration approach, reducing the need for manual configuration.
It includes embedded servers like Tomcat, Jetty, or Undertow, making it easy to deploy standalone applications.
Spring Boot uses annotations to simplify the configuration of beans, controller...
Some important Spring Boot annotations include @SpringBootApplication, @RestController, @Autowired, @RequestMapping, @ComponentScan.
@SpringBootApplication - Used to mark the main class of a Spring Boot application.
@RestController - Used to define RESTful web services.
@Autowired - Used for automatic dependency injection.
@RequestMapping - Used to map web requests to specific handler methods.
@ComponentScan - Used to speci...
Dependency Injection in Spring Boot allows for loosely coupled components by injecting dependencies at runtime.
Dependency Injection is a design pattern where objects are passed their dependencies rather than creating them internally.
In Spring Boot, dependencies are injected using @Autowired annotation.
By using Dependency Injection, components can be easily swapped out and tested independently.
Example: @Autowired privat...
Profiling in Spring Boot involves analyzing the performance of an application to identify bottlenecks and optimize its efficiency.
Profiling tools like VisualVM, YourKit, and JProfiler can be used to analyze the performance of Spring Boot applications.
Profiling helps in identifying memory leaks, CPU usage, and other performance issues in the application.
By analyzing the profiling results, developers can optimize the cod...
Top trending discussions
I was interviewed in Dec 2024.
API Gateway implementation is a centralized service that routes, manages, and secures API calls.
API Gateway acts as a single entry point for all API calls
It can handle authentication, rate limiting, caching, and request/response transformations
Examples include AWS API Gateway, Apigee, Kong
Circuit breaker is a design pattern used to prevent system overload by temporarily stopping requests to a failing service.
Circuit breaker monitors requests to a service and opens when the service fails repeatedly.
It helps prevent cascading failures and allows the system to gracefully degrade.
Once the circuit breaker is open, it can periodically check if the service has recovered before allowing requests again.
Deadlock is a situation in which two or more processes are unable to proceed because each is waiting for the other to release a resource.
Avoid circular wait by ensuring processes request resources in the same order.
Prevent hold and wait by requiring processes to request all needed resources at once.
Implement a timeout mechanism to break potential deadlocks.
Use resource allocation graphs to detect and prevent deadlocks.
...
The equals() method is used to compare the contents of two objects for equality.
The equals() method is a method of the Object class in Java.
It is used to compare the contents of two objects for equality.
The default implementation of equals() in the Object class compares memory addresses, so it is often overridden in custom classes to compare content.
Example: String class overrides equals() method to compare the content
MongoDB was integrated in the application by using the official Java driver and configuring connection settings.
Used the official MongoDB Java driver to interact with the database
Configured connection settings such as host, port, database name, and authentication credentials
Implemented CRUD operations using MongoDB Java driver methods
Utilized MongoDB aggregation framework for complex queries
Hibernate is an open-source Java framework that simplifies the development of database interactions in Java applications.
Hibernate is an Object-Relational Mapping (ORM) tool that maps Java objects to database tables.
It provides a way to perform database operations using Java objects instead of writing SQL queries.
Hibernate handles the mapping of Java classes to database tables and vice versa, as well as the generation ...
Runnable is a functional interface with a single run() method, while Callable is a functional interface with a single call() method.
Runnable is used for tasks that do not return a result, while Callable is used for tasks that return a result.
Callable can throw checked exceptions, while Runnable cannot.
Callable returns a Future object, which can be used to retrieve the result of the computation.
Example: Runnable - execu...
The Callable interface in Java returns a Future object.
Callable interface returns a Future object which represents the result of a computation that may not be available yet.
The Future object can be used to retrieve the result of the computation, check if it is done, or cancel the computation.
Example: Callable<Integer> task = () -> { return 42; }
Monitor application health using metrics, logs, alerts, and performance monitoring tools.
Use monitoring tools like Prometheus, Grafana, or New Relic to track key metrics such as CPU usage, memory usage, response times, and error rates.
Implement logging to record important events and errors in your application. Use tools like ELK stack (Elasticsearch, Logstash, Kibana) for log analysis.
Set up alerts to notify you of any...
To call an API in a Microservice architecture, use HTTP requests or messaging protocols like gRPC.
Use HTTP requests to communicate between microservices
Implement RESTful APIs for easy integration
Leverage messaging protocols like gRPC for efficient communication
Consider using service discovery mechanisms for dynamic API calls
Profiles in Java are configurations that define the capabilities of a Java platform.
Profiles allow developers to target specific types of devices or applications.
They help in reducing the size of the Java runtime environment by including only the necessary APIs.
Examples include Java SE Embedded Profile for embedded devices and Java SE Compact Profile for resource-constrained environments.
OpenFeign is a declarative web service client used to simplify the process of making HTTP requests in microservices architecture.
OpenFeign allows developers to define RESTful web services as interfaces and automatically generate the necessary implementation code.
It integrates seamlessly with Spring Cloud and other microservices frameworks to facilitate communication between services.
OpenFeign supports features like loa...
Service registry and discovery involves registering services and allowing clients to discover and connect to them.
Implement a service registry where services can register themselves with metadata
Use a service discovery mechanism for clients to find and connect to services
Implement health checks to ensure services are available and healthy
Use a load balancer to distribute traffic among multiple instances of a service
Spring Boot Actuators are built-in tools that provide insight into the running application.
Actuators expose various endpoints to monitor and manage the application.
They can be used to check health, metrics, environment details, and more.
Examples include /actuator/health, /actuator/metrics, and /actuator/env.
Synchronous communication is blocking, while asynchronous communication is non-blocking.
Synchronous communication waits for a response before continuing, while asynchronous communication does not wait.
Examples of synchronous communication include traditional function calls, while examples of asynchronous communication include callbacks and promises.
Synchronous communication can lead to performance issues if there are d...
Synchronized keyword is used in Java to control access to shared resources by multiple threads.
Synchronized keyword can be applied to methods or code blocks to ensure only one thread can access the synchronized code at a time.
It prevents race conditions and ensures thread safety by creating a lock on the object or class.
Example: synchronized void myMethod() { // synchronized code block }
Excessive use of synchronized blocks and methods in Java can lead to performance issues and potential deadlocks.
Decreased performance due to increased contention for locks
Potential deadlocks if multiple threads are waiting for each other to release locks
Increased complexity and difficulty in debugging and maintaining code
Use synchronized sparingly and consider alternatives like ConcurrentHashMap or Lock interface
The number of threads needed for an application can be determined based on factors like the type of tasks, hardware resources, and performance requirements.
Consider the type of tasks your application needs to perform - CPU-bound tasks may benefit from more threads, while I/O-bound tasks may not.
Take into account the hardware resources available - more threads may be beneficial on a multi-core processor compared to a si...
Executor framework is a framework in Java that provides a way to manage and execute tasks asynchronously.
Allows for managing thread execution in a more efficient way
Provides a way to decouple task submission from task execution
Supports various types of executors like ThreadPoolExecutor and ScheduledExecutorService
Helps in handling tasks concurrently and asynchronously
BlockingQueue is an interface in Java that represents a queue which supports operations that wait for the queue to become non-empty when retrieving an element and wait for space to become available in the queue when adding an element.
BlockingQueue is part of the java.util.concurrent package.
It is used for implementing producer-consumer scenarios where multiple threads are involved.
Methods like put() and take() are used...
Seeking new challenges and opportunities for growth.
Desire for career advancement
Looking for new challenges
Seeking better work-life balance
Company restructuring or downsizing
Relocation to a new area
I applied via Approached by Company and was interviewed in Dec 2024. There was 1 interview round.
Java 8 introduced static and default methods in interfaces, allowing for method implementation and code reusability.
Java 8 introduced static methods in interfaces, allowing for method implementation directly in the interface itself.
Default methods were also introduced in Java 8, enabling interfaces to have method implementations without affecting implementing classes.
Static methods in interfaces can be called using the...
HashMap is a data structure that stores key-value pairs and uses hashing to efficiently retrieve values.
HashMap uses an array of linked lists to store key-value pairs.
When a key-value pair is added, the key is hashed to determine the index in the array where it will be stored.
If multiple keys hash to the same index, a linked list is used to handle collisions.
To synchronize a HashMap, you can use the synchronizedMap() m...
No, the program will not compile if the parent class throws a runtime exception while the child class throws an arithmetic exception.
In Java, if a parent class method throws a checked exception, the child class method can only throw the same exception or its subclasses.
ArithmeticException is an unchecked exception, so if the parent class throws a checked exception and the child class throws an unchecked exception, the ...
Configure JDBC in Spring Boot to specify which database to use
Define multiple DataSource beans in the configuration class
Use @Primary annotation to specify the primary DataSource
Use @Qualifier annotation to specify the secondary DataSource
Inject the DataSource beans where needed in the application
To use a Jetty server in a Spring Boot application, you can configure it as a dependency and customize its settings.
Add Jetty server dependency in your pom.xml file
Exclude Tomcat server dependency if it's included by default in Spring Boot
Configure Jetty server settings in application.properties or application.yml file
Example: Add Jetty dependency - <dependency> <groupId>org.springframework.boot</groupId...
RequestParam is used to extract query parameters from the URL, while PathVariable is used to extract values from the URI path.
RequestParam is used for query parameters in the URL, while PathVariable is used for values in the URI path.
RequestParam is optional, while PathVariable is required.
RequestParam is used with the @RequestParam annotation, while PathVariable is used with the @PathVariable annotation.
Example: @Requ...
I would implement timeout mechanisms and retries to handle the scenario of one microservice awaiting a response from another microservice taking an extended time.
Implement timeout mechanisms in the calling microservice to limit the waiting time for a response.
Set up retry logic to automatically resend the request to the slow microservice if no response is received within the specified timeout period.
Use circuit breaker...
I applied via Company Website and was interviewed in Nov 2024. There were 2 interview rounds.
I applied via Naukri.com and was interviewed in Dec 2024. There was 1 interview round.
I have 2 years of experience working with Docker in various projects.
2 years of experience working with Docker in various projects
Proficient in creating Docker containers, managing images, and orchestrating containers using Docker Compose
Familiar with Docker Swarm and Kubernetes for container orchestration
Experience in troubleshooting Docker-related issues and optimizing container performance
Yes, I have experience in Kubernetes.
I have worked on deploying and managing applications on Kubernetes clusters.
I am familiar with creating and managing Kubernetes resources such as pods, deployments, services, and ingresses.
I have experience in using tools like kubectl and Helm for interacting with Kubernetes clusters.
I have implemented CI/CD pipelines using Kubernetes for automated deployment and scaling of applicat
OOP stands for Object-Oriented Programming, a programming paradigm based on the concept of objects.
OOP focuses on creating objects that contain data and methods to manipulate that data.
Encapsulation, inheritance, and polymorphism are key principles of OOP.
Examples of OOP languages include Java, C++, and Python.
Polymorphism in Java refers to the ability of a method to do different things based on the object it is acting upon.
Types of polymorphism in Java include method overloading and method overriding.
Method overloading is when multiple methods have the same name but different parameters.
Method overriding is when a subclass provides a specific implementation of a method that is already defined in its superclass.
Threads in Java allow multiple tasks to run concurrently within a single program.
Threads are lightweight sub-processes that share the same memory space.
They are used to improve performance by allowing tasks to run simultaneously.
Examples include creating a new thread using the Thread class or implementing the Runnable interface.
Spring profile is a way to segregate parts of your application configuration and make it only available in certain environments.
Spring profiles allow you to define different configurations for different environments such as development, testing, and production.
You can use @Profile annotation to specify which beans should be loaded based on the active profile.
Profiles can be activated in various ways such as through app...
Annotations used in Spring Security to apply authorization rules before and after a method is called.
Used in Spring Security to define authorization rules
@PreAuthorize is used to apply authorization rules before a method is called
@PostAuthorize is used to apply authorization rules after a method is called
Both annotations support SpEL expressions for defining rules
I applied via Naukri.com and was interviewed in Dec 2024. There was 1 interview round.
Java 8 introduced lambda expressions, Java 11 added local-variable syntax for lambda parameters, and Java 17 included sealed classes and pattern matching.
Java 8 introduced lambda expressions for functional programming.
Java 11 added local-variable syntax for lambda parameters to simplify code.
Java 17 included sealed classes to restrict inheritance and pattern matching for instanceof checks and type casts.
Count the number of words in a given string.
Split the string by spaces and count the number of resulting elements.
Handle edge cases like multiple spaces or empty strings.
Consider punctuation marks as part of words unless specified otherwise.
I applied via Naukri.com and was interviewed in Nov 2024. There was 1 interview round.
HashMap is non-synchronized and allows null values, while HashTable is synchronized and does not allow null values.
HashMap is non-synchronized, meaning it is not thread-safe, while HashTable is synchronized and thread-safe.
HashMap allows null values for both keys and values, while HashTable does not allow null keys or values.
HashMap is generally preferred for non-thread-safe applications, while HashTable is used in mul
I applied via Naukri.com and was interviewed in Dec 2024. There was 1 interview round.
I applied via Job Fair and was interviewed in Oct 2024. There were 4 interview rounds.
Onlin test consist pf easy numerical questions
Easy questions not so difficult
Yes, I am willing to work in any location for the right opportunity.
I am open to relocating for the right job opportunity
I am flexible and adaptable to new environments
I believe working in different locations can provide valuable experiences and growth opportunities
I applied via Company Website and was interviewed in Oct 2024. There were 3 interview rounds.
First round is quit easy
2 coding question based on dsa
SDLC stands for Software Development Life Cycle, which consists of different phases from planning to maintenance.
1. Planning phase involves defining project scope, requirements, and creating a project plan.
2. Analysis phase focuses on gathering and analyzing requirements to create a detailed system design.
3. Design phase involves creating a high-level design, detailed design, and architecture for the software.
4. Implem...
The 4 pillars of data structure are arrays, linked lists, stacks, and queues.
Arrays: Data structure that stores a collection of elements with a fixed size.
Linked Lists: Data structure where each element points to the next element in the sequence.
Stacks: Data structure that follows the Last In First Out (LIFO) principle.
Queues: Data structure that follows the First In First Out (FIFO) principle.
Interview experience
TCS
Accenture
Wipro
Cognizant