Interview Prep Roadmap

Get Started. It's Free
or sign up with your email address
Interview Prep Roadmap by Mind Map: Interview Prep  Roadmap

1. EverGreen

1.1. DSA

1.1.1. Array Based Questions

1.1.1.1. Sort the elements of an array in increasing order

1.1.1.2. Find the largest element in a array using a loop

1.1.1.3. Remove duplicate elements from an array

1.1.1.4. Reverse an array without an another array

1.1.2. String Based Questions

1.1.2.1. Reverse a given string

1.1.2.2. Swap two strings without a third variable

1.1.2.3. String is palindrome or not

1.1.3. Else Everything

1.1.3.1. Check number is prime or not

1.1.3.2. Fibonacci

1.1.3.3. Factorial

2. 1. Core JAVA Topics

2.1. Basic Java

2.1.1. What is java

2.1.2. How Java Works

2.1.3. Features

2.1.4. JVM/JRE/JDK

2.2. OOPs Concept

2.2.1. Inheritance

2.2.1.1. extends keyword

2.2.1.2. parent & child

2.2.1.3. super() for calling constructor in parent and this is done by default

2.2.1.4. multiple inheritance

2.2.1.5. multilevel inheritance

2.2.2. Polymorphism

2.2.2.1. Compile-time

2.2.2.1.1. Method Overloading

2.2.2.2. Run-time

2.2.2.2.1. Method Overriding

2.2.3. Abstraction

2.2.3.1. interface usage

2.2.3.2. implements keyword

2.2.3.3. abstract classes

2.2.3.4. abstract methods

2.2.4. Encapsulation

2.2.4.1. Binding Data and code together

2.2.4.2. private variables

2.2.4.3. public methods to access private variables

2.2.4.4. getters and setters

2.2.5. Association

2.2.5.1. Relation between objects

2.2.5.1.1. One-to-many

2.2.5.1.2. One-to-one

2.2.5.1.3. Many-to-many

2.3. Java Keywords

2.3.1. Abstract

2.3.2. public

2.3.3. protected

2.3.4. private

2.3.5. default

2.3.6. final

2.4. Java 8 Features

2.4.1. Method References

2.4.2. Functional Interface

2.4.3. Default and Static Method

2.4.4. Static block

2.4.5. Instance block

2.4.6. Final / Finally / Finalize

2.4.6.1. Final

2.4.6.2. Finally

2.4.6.3. Finalize

2.5. String Class

2.5.1. String buffer

2.5.2. String Builder

2.5.3. Immutable String

2.5.4. Mutable String

2.6. Constructors

2.6.1. Default

2.6.2. Parameterized

2.7. Collections Framework

2.7.1. List

2.7.1.1. ArrayList

2.7.1.2. LinkedList

2.7.1.3. Vector

2.7.1.4. Stack

2.7.2. Set

2.7.2.1. HashSet

2.7.2.2. LinkedHashSet

2.7.2.3. TreeSet

2.7.3. Map

2.7.3.1. HashMap

2.7.3.1.1. Internal Implementation

2.7.3.1.2. Concurrent HashMap

2.7.3.2. LinkedHashMap

2.7.3.3. TreeMap

2.7.3.4. HashTable

2.7.4. Queue

2.7.4.1. PriorityQueue

2.7.4.2. Deque (Double-Ended Queue)

2.7.4.3. Circular queue

2.8. Comparator and Comparable

2.9. Threading

2.9.1. more about thread

2.9.1.1. Synchronized keyword to overcome (race condition)

2.9.1.1.1. race condition

2.9.2. Ways to use threads

2.9.2.1. By extending class by Thread

2.9.2.2. By implementing Runnable interface in class

2.9.2.3. Shortcut methods

2.9.2.3.1. By making an anonymous class within the class

2.9.2.3.2. By using lamda expression

2.9.3. thread scheduler algos

2.9.3.1. First Come First Serve

2.9.3.2. Time slicing

2.9.3.3. Priority scheduling

2.9.4. Frameworks

2.9.4.1. Executor Framework

2.9.5. Thread States

2.9.5.1. New

2.9.5.1.1. When the instance of a thread is created

2.9.5.2. Runnable

2.9.5.2.1. When the start method is called and teh thread is ready to execut and waiting for processor availability.

2.9.5.3. Running

2.9.5.3.1. When the thread is picked by scheduler for execution process.

2.9.5.4. Blocked

2.9.5.4.1. when the thread is suspended or sleeping or waiting

2.9.5.5. Dead

2.9.5.5.1. when the run() method completes the execution or stop() method is called.

2.10. Stream API

2.10.1. Can be used only once

2.10.2. Example Code

2.11. Serialization and Deserialization

2.12. Exception Handling

2.12.1. Checked

2.12.2. Unchecked

2.12.3. throw vs throws

2.13. Extras

2.13.1. Wrapper class

2.13.2. Casting

2.13.3. Garbage Collection

2.13.4. load balancing

2.13.5. clustering

2.13.6. I/O stream

2.13.7. Class Loader , Heap , Stack

2.13.8. Nested Class

2.13.9. dependency injection

2.13.10. stopping inheritance + method overriding

2.13.10.1. make class or method final

2.13.11. Diamond problem

3. 2. SOLID Principles

3.1. S

3.1.1. Single Responsibility Principle

3.1.1.1. Code Example

3.2. O

3.2.1. Open-Closed Principle

3.2.1.1. Code Example

3.3. L

3.3.1. Liskov Substitution Principle

3.3.1.1. Code Example

3.4. I

3.4.1. Interface Segregation Principle

3.4.1.1. Code Example

3.5. D

3.5.1. Dependency Inversion Principle

3.5.1.1. Code Example

3.6. Advantages

3.6.1. Helps in writing code better

3.6.2. Avoid Dupicate Code

3.6.3. Easy to maintain

3.6.4. Easy to understand

3.6.5. Flexible Software

3.6.6. Reduce complexity

4. 3. Spring Framework

4.1. Basics

4.1.1. What is Spring?

4.1.2. Dependency Injection

4.1.2.1. Types

4.1.2.1.1. Constructor Injection

4.1.2.1.2. Setter Injection

4.1.2.1.3. Field Injection(Not Recommended)

4.1.3. Aspect Oriented Programming

4.1.3.1. definition

4.1.4. Loose Coupling

4.1.5. Spring Container

4.1.6. IOC container

4.1.7. Transaction management

4.2. Bean

4.2.1. Define the Scope of a Bean?

4.2.1.1. Singleton

4.2.1.2. Prototype

4.2.1.3. Request

4.2.1.4. Session

4.2.1.5. Global-session

4.2.2. Default Bean Scope

4.2.3. Spring Bean Life Cycle

4.2.3.1. Instantiation

4.2.3.2. Dependency Injection

4.2.3.3. Initialization

4.2.3.4. Bean is Ready for Use

4.2.3.5. Destruction

4.3. Maven

4.4. Spring MVC

4.5. SpringBoot

4.6. What Is Spring Security?

4.7. Annotation

4.7.1. Spring Core Annotations

4.7.1.1. @Component

4.7.1.2. @Service

4.7.1.3. @Repository

4.7.1.4. @Controller

4.7.1.5. @RestController

4.7.2. Dependency Injection Annotations

4.7.2.1. @Autowired

4.7.2.2. @Qualifier

4.7.2.3. @Value

4.7.3. Configuration and Lifecycle Annotations

4.7.3.1. @Configuration

4.7.3.2. @Bean

4.7.3.3. @PostConstruct

4.7.3.4. @PreDestroy

4.7.4. Spring MVC and REST Annotations

4.7.4.1. @RequestMapping

4.7.4.2. @GetMapping

4.7.4.3. @PostMapping

4.7.4.4. @PutMapping

4.7.4.5. @PatchMapping

4.7.4.6. @DeleteMapping

4.7.4.7. @PathVariable

4.7.4.8. @RequestParam

4.7.5. Transactional Annotations

4.7.5.1. @Transactional

4.8. All about Autowired annotation

4.8.1. Definition

4.8.2. Types of autowiring

4.8.2.1. Type-Based Wiring

4.8.2.2. Name-Based Wiring

4.8.2.3. Constructor-Based Wiring

4.8.2.4. Optional Injection

4.9. Hibernate

4.9.1. get( ) vs load( ) method

4.9.1.1. get ( )

4.9.1.2. load ( )

4.10. Servlet

4.11. Dispatcher Servelet

4.12. Data JPA

4.12.1. JPA Repository

4.13. jwt

4.14. Actuators

5. 4. SQL

5.1. Concepts

5.1.1. primary

5.1.2. foriegn key

5.1.3. candidate key

5.1.4. having

5.1.5. uniqueId

5.1.6. primary vs unique

5.1.7. normalization

5.1.8. joins

5.1.8.1. Inner

5.1.8.2. Outer

5.1.8.3. Left

5.1.8.4. Right

5.1.8.5. Full

5.2. Queries

5.2.1. Highest Salary

5.2.2. Second Highest Salary

5.2.3. Find the last five records from a table.

5.2.4. 3rd highest salary

5.3. Extras

5.3.1. Indexing query

6. 5. Design Patterns

6.1. Prototype Pattern

6.2. Singleton Pattern

6.2.1. Eager Initialization

6.2.2. Lazy Initialization

6.2.3. Synchronized method

6.2.4. Double Locking

6.3. Factory Pattern

6.4. Abstract Factory Pattern

6.5. Bridge Pattern

6.6. Fly Pattern

7. 6. System Design

8. 7. Micro Services

9. 8. AWS

10. 9. CI/CD