Spring Boot + Java Senior Developer Interview Preparation
1. Core Java Concepts:
- Object-Oriented Programming (OOP): Understand classes, inheritance, polymorphism,
encapsulation, and abstraction.
- Java Collections Framework: Lists, Sets, Maps, and their differences.
- Concurrency: Threads, Executor framework, multi-threading handling.
- Java 8 Features: Streams, lambdas, functional interfaces, Optional.
- JVM Internals: Memory management, garbage collection, and JVM operations.
2. Spring Boot Specifics:
- Dependency Injection: Discuss how Spring handles DI and its importance.
- Spring Boot Autoconfiguration: Autoconfiguration, enabling/disabling specific configurations.
- Spring Boot Profiles: Handling multiple environments (dev, test, prod).
- Spring Security: Implementing authentication, authorization (JWT, OAuth2).
- Spring Data JPA: Entities, repositories, JPQL, criteria queries, caching.
- Microservices: Building and managing microservices with Spring Boot (Spring Cloud, Eureka).
- Testing: Unit testing with JUnit, Mockito, and integration testing in Spring Boot.
3. System Design and Architecture:
- Designing systems with trade-offs (monolithic vs microservices).
- Handling scaling, load balancing, high availability.
- REST APIs, WebSocket, message queues (Kafka, RabbitMQ).
4. Behavioral Questions:
- Handling complex issues or bugs.
- Handling disagreements with team members.
- Ensuring code quality, performance, and maintainability.
Infosys-Specific Questions:
- How do you ensure adherence to coding standards in a large team?
- Explain how you have worked with legacy systems and migrated them to newer technologies.
- How do you handle performance bottlenecks in an enterprise-scale application?
- How would you handle a situation where a critical application goes down?
- Explain your experience with Agile methodology and working in Scrum teams.