https://github.com/sunilsoni/interviewnotes
All are realtime interview questions and answers. I am adding more on daily basis whenever I am getting time.
https://github.com/sunilsoni/interviewnotes
angular aws aws-s3 design-patterns interview-notes interview-questions java-8 kafka maven microservices mongodb multithreading object-oriented-programming oop
Last synced: about 2 months ago
JSON representation
All are realtime interview questions and answers. I am adding more on daily basis whenever I am getting time.
- Host: GitHub
- URL: https://github.com/sunilsoni/interviewnotes
- Owner: sunilsoni
- Created: 2021-03-22T18:32:26.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-03-12T10:32:07.000Z (over 1 year ago)
- Last Synced: 2025-04-07T17:53:46.583Z (6 months ago)
- Topics: angular, aws, aws-s3, design-patterns, interview-notes, interview-questions, java-8, kafka, maven, microservices, mongodb, multithreading, object-oriented-programming, oop
- Homepage: https://sunilsoni.github.io/interview-notes/
- Size: 15 MB
- Stars: 114
- Watchers: 6
- Forks: 68
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Interview Notes
Interview questions and answers
# Object-oriented programming(OOPS)
- [OOPS](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#object-oriented-programmingoops)
* [Abstraction](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#abstraction)
* [Encapsulation](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#encapsulation)
* [Polymorphism](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#polymorphism)
* [Abstract Class](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#abstract-class)
* [Does Abstract class have constructor?](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#does-abstract-class-have-constructor)
* [Abstract class Vs Interface](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#abstract-class-vs-interface)
* [What to choose – interface or abstract class](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#what-to-choose--interface-or-abstract-class)
* [Why Java 8 has introduced default methods?](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#why-java-8-has-introduced-default-methods)
* [Why Java 8 has introduced static methods?](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#why-java-8-has-introduced-static-methods)
* [Why Java does not allow multiple inheritance?](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#why-java-does-not-allow-multiple-inheritance)
* [Method Overloading and Overriding](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#method-overloading-and-overriding)
* [Method Overloading](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#method-overloading)
* [Rules for Method Overloading](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#rules-for-method-overloading)
* [Method Overriding](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#method-overriding)
* [Rules for Method Overriding](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#rules-for-method-overriding)
* [Association](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#association)
* [Aggregation](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#aggregation)
* [Composition](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#composition)
* [Association vs. Aggregation vs. Composition](https://github.com/sunilsoni/interview-notes/blob/main/oop/oops.md#association-vs-aggregation-vs-composition)# Java
- [Basic](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md)* [Java 8](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#java-8)
* [Java 8 Features](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#java-8-features)
* [New features](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#new-features)
* [Lambda Expressions](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#lambda-expressions)
* [Lambda Expressions](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#lambda-expressions)
1. [Examples of lambda expressions](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#examples-of-lambda-expressions)
1. [Why use Lambda Expression](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#why-use-lambda-expression)
1. [Lambda Expressions Syntax](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#java-lambda-expression-syntax-)
1. [Lambda Expressions Examples](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#lambda-expressions-examples)
* [Stream](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#stream)
* [Stream features](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#stream-features)
* [Intermediate and Terminal operations](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#intermediate-and-terminal-operations)
* [Intermediate vs Terminal operations](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#intermediate-vs-terminal-operations)
* [Intermediate Operations](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#intermediate-operations)
* [Terminal Operations](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#terminal-operations-)* [Functional Interface](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#functional-interface)
* [Custom Functional Interface](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#custom-functional-interface)
* [Predefined Functional Interfaces](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#predefined-functional-interfaces)
* [Predicate](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#predicate)
* [Function](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#function)
* [Supplier](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#supplier)
* [Consumer](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#consumer)
* [BiFunction](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#bifunction)
* [BiConsumer](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#biconsumer)
* [Method References](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#method-references)
* [Method References Types](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java8.md#method-references-types)
* [Test](https)
* [Why String is Immutable?](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#why-string-is-immutable)
* [StringBuffer and StringBuilder](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#stringbuffer-and-stringbuilder)
* [equals and hashcode contract](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#equals-and-hashcode-contract)
* [Comparable and Comparator interfaces](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#comparable-and-comparator-interfaces)
* [Comparable vs Comparator](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#comparable-and-comparator)
* [static keyword](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#static-keyword)
* [Shallow Copy and Deep Copy](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#shallow-copy-and-deep-copy)
* [Serialization and De-serialization](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#serialization-and-de-serialization)
* [Serialization scenarios with Inheritance](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#serialization-scenarios-with-inheritance)
* [How to make a class Immutable?](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#how-to-make-a-class-immutable)
* [Class loaders in Java](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#class-loaders-in-java)
* [Garbage Collector](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#garbage-collector)
* [How does the garbage collector work?](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#how-does-the-garbage-collector-work)
* [Types of garbage collectors](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#types-of-garbage-collectors)
* [Garbage Collection and types of Garbage Collectors](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#garbage-collection-and-types-of-garbage-collectors)
* [final, finally and finalize()](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#final-finally-and-finalize)
* [String, StringBuffer, StringBuilder](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#string-stringbuffer-stringbuilder)
* [Reflection](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#reflection)
* [Exceptions](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#exceptions)
* [Checked and Unchecked Exception](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#checked-and-unchecked-exception)
* [Custom exception](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#custom-exception)
* [OutOfMemoryError](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#outofmemoryerror)
* [Generics](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#generics-in-java)
* [Benefits of Generics](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#benefits-of-generics)
* [Collection Framework examples for Generics.](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#collection-framework-examples-for-generics)
* [Type Parameter Naming Conventions](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#type-parameter-naming-conventions)
* [Multiple Type Parameters](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#multiple-type-parameters)
* [Immutable object](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#immutable-object)
* [Benefits of immutable objects](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#benefits-of-immutable-objects)
* [Immutable Class](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#immutable-class)
* [Wrong way to write an immutable class](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#wrong-way-to-write-an-immutable-class)
* [Right way to write an immutable class](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#right-way-to-write-an-immutable-class)
* [Pass by reference and Pass by value](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#pass-by-reference-and-pass-by-value)
* [Shallow cloning and Deep cloning](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#shallow-cloning-and-deep-cloning)
* [Instance variable and a Static variable](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#instance-variable-and-a-static-variable)
* [Local variables vs Instance and static variables](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#local-variables-vs-instance-and-static-variables)
* [Access Modifiers](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#access-modifiers)
* [Volatile keyword](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#volatile-keyword)
* [synchronized vs volatile](https://github.com/sunilsoni/interview-notes/blob/main/Java/basic/java-basics.md#synchronized-vs-volatile)
* [Test](https)
- [Collection Framework](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#collection-framework)* [ArrayList](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#arraylist)
* [Accessing elements](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#accessing-elements)
* [Removing elements](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#removing-elements)
* [Iterating over an ArrayList](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#iterating-over-an-arraylist)
* [Searching for elements in an ArrayList](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#searching-for-elements-in-an-arraylist)
* [Sorting an ArrayList](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#sorting-an-arraylist)
* [HashMap](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#hashmap)
* [HashMap Internal working](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#hashmap-internal-working)
* [Sort Map By Value Example](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/datastructure/Map/SortMapByValueExample.java)
* [How put() method of HashMap works internally](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#how-put-method-of-hashmap-works-internally)
* [How HashMap get() method works internally](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#how--hashmap-get-method-works-internally)
* [When null Key is inserted in a HashMap](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#when-null-key-is-inserted-in-a-hashmap)
* [HashMap implementation changes in Java 8](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#hashmap-implementation-changes-in-java-8)
* [Interal working of put() and get() methods of HashMap](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#interal-working-of-put-and-get-methods-of-hashmap-)
* [HashMap collisions](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#hashmap-collisions)
* [equals and hashCode method in HashMap when the key is a custom class](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#equals-and-hashcode-method-in-hashmap-when-the-key-is-a-custom-class)
* [Concurrent HashMap](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#concurrent-hashmap)
* [ConcurrentHashMap vs Synchronized HashMap](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#concurrenthashmap-vs-synchronized-hashmap)
* [HashSet class](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#hashset-class)
* [TreeMap](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#treemap)
* [TreeSet](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#treeset)
* [fail-safe and fail-fast iterators](https://github.com/sunilsoni/interview-notes/blob/main/Java/collection/collection-framework.md#fail-safe-and-fail-fast-iterators)
- [Multi threading](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#multi-threading)* [Life Cycle of a Thread](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#life-cycle-of-a-thread)
* [Creating a Thread](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#creating-a-thread)
* [Life Cycle of a Thread](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#life-cycle-of-a-thread)
* [Creating a Thread](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#creating-a-thread)
* [Difference between Runnable vs Thread](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#difference-between-runnable-vs-thread)
* [synchronized keyword](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#synchronized-keyword)
* [static synchronization](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#static-synchronization)
* [What does join() method?](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#q-what-does-join-method)
* [Deadlock](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#deadlock)
* [How to avoid deadlock?](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#how-to-avoid-deadlock)
* [What will happen if I directly call the run() method and not the start() method to execute a thread?](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#what-will-happen-if-i-directly-call-the-run-method-and-not-the-start-method-to-execute-a-thread)
* [Once a thread has been started can it be started again?](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#once-a-thread-has-been-started-can-it-be-started-again)
* [Why wait, notify and notifyAll methods are defined in the Object class instead of Thread class?](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#why-wait-notify-and-notifyall-methods-are-defined-in-the-object-class-instead-of-thread-class)
* [Why wait(), notify(), notifyAll() methods must be called from synchronized block?](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#why-wait-notify-notifyall-methods-must-be-called-from-synchronized-block)
* [wait() vs sleep() methods](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#wait-vs-sleep-methods)
* [Executor Framework](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#executor-framework)
* [High level concurrency features Executor framework](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#high-level-concurrency-features-executor-framework)
* [Executor Interface](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#executor-interface)
* [ExecutorService Interface](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#executorservice-interface)
* [ExecutorService Interface Examples](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#executorservice-interface-examples)
* [Different Between execute() and submit() Methods](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#different-between-execute-and-submit-methods)
* [ScheduledExecutorService Interface](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#scheduledexecutorservice-interface)
* [Future Interface](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#future-interface)
* [Executor Framework-2](https://github.com/sunilsoni/interview-notes/blob/main/Java/multi-threading/multi-threading.md#executor-framework-2)# Data Structures and Algorithms
* [Lists](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#lists)
* [ArrayList](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#arraylist)
* [LinkedList](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#linkedlist)
* [Stack](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#stack)
* [Vector](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#vector)
* [CopyOnWriteArrayList](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#copyonwritearraylist)
* [Collections.synchronizedList](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#collectionssynchronizedlist)
* [Sets](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#sets)
* [HashSet](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#hashset)
* [LinkedHashSet](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#linkedhashset)
* [TreeSet](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#treeset)
* [ConcurrentSkipListSet](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#concurrentskiplistset)
* [CopyOnWriteArraySet](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#copyonwritearrayset)
* [EnumSet](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#enumset)
* [Maps](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#maps)
* [HashMap](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#hashmap)
* [HashMap implementation details](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#hashmap-implementation-details)
* [LinkedHashMap](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#linkedhashmap)
* [Hashtable](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#hashtable)
* [ConcurrentHashMap](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#concurrenthashmap)
* [TreeMap](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#treemap)
* [ConcurrentSkipListMap](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#concurrentskiplistmap)
* [Queues](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#queues)
* [LinkedList](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#linkedlist-1)
* [ArrayBlockingQueue](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#arrayblockingqueue)
* [LinkedBlockingQueue](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#linkedblockingqueue)
* [ConcurrentLinkedQueue](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#concurrentlinkedqueue)
* [Deque classes](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#deque-classes)
* [PriorityQueue](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#priorityqueue)
* [PriorityBlockingQueue](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#priorityblockingqueue)
* [DelayQueue](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#delayqueue)
* [SynchronousQueue](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#synchronousqueue)
* [equals and hashCode](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#equals-and-hashcode)
* [Hierarchy and classes](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/data-structure.md#hierarchy-and-classes)* [Frequently asked](https)
* [Stack](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/datastructure/Stack/Stack.java)
* [CustomStack](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/datastructure/Stack/CustomStack.java)
* [LinkedListStack](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/datastructure/Stack/LinkedListStack.java)
* [LinkedListReversal](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/linkedlist/LinkedListReversal.java)
* [MyLinkedList](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/linkedlist/MyLinkedList.java)
* [PrimesPrimeChecker](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/prime/PrimeChecker.java)
* [RemoveDuplicateFromString](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/misc/RemoveDuplicateFromString.java)
* [Palindrome](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/misc/Palindrome.java)
* [FindLargestThree](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/misc/FindLargestThree.java)
* [FibonacciSeries](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/misc/FibonacciSeries.java)
* [BalancedBracketsUsingString](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/misc/BalancedBracketsUsingString.java)
* [BalancedBracketsUsingDeque](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/misc/BalancedBracketsUsingDeque.java)
* [Anagram](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#anagram)
* [Problem analysis](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#problem-analysis)
* [Code implementation (sorting)](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#code-implementation-sorting)
* [Code implementation (hash)](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#code-implementation-hash)
* [Anagrams](https://github.com/sunilsoni/interview-notes-code/tree/master/src/main/java/com/interview/notes/code/anagram)
* [Anagrams](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/anagram/Anagrams.java)
* [ValidAnagram](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/anagram/ValidAnagram.java)
* [PrintAnagramTogether](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/anagram/PrintAnagramTogether.java)
* [AnagramOfFirstAsSubstring](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/anagram/AnagramOfFirstAsSubstring.java)
* [GroupAnagramsTogether](https://github.com/sunilsoni/interview-notes-code/blob/master/src/main/java/com/interview/notes/code/anagram/GroupAnagramsTogether.java)
* [Find the median of two positively ordered arrays](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#find-the-median-of-two-positively-ordered-arrays)
* [What is the median of an array](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#what-is-the-median-of-an-array)
* [Problem analysis](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#problem-analysis-1)
* [Code](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#code)
* [Code (Brute Force approach)](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#code-brute-force-approach)
* [Subarray Sum Equals K](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#subarray-sum-equals-k)
* [Problem analysis](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#problem-analysis-2)
* [Code - Optimization by Hashmap](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#code---optimization-by-hashmap)
* [Code - Brute Force approach](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Problems.md#code---brute-force-approach)* [Data Types](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#data-types)
* [System-defined data types (Primitive data types)](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#system-defined-data-types-primitive-data-types)
* [User defined data types](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#user-defined-data-types)
* [Data Structures](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#data-structures)
* [Linear data structures](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#linear-data-structures)
* [Non – linear data structures](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#non--linear-data-structures)
* [Commonly Used Rates of Growth](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#commonly-used-rates-of-growth)
* [Arrays](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#arrays)
* [Advantages of Arrays](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#advantages-of-arrays)
* [Disadvantages of Arrays](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#disadvantages-of-arrays)
* [Dynamic Arrays](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#dynamic-arrays)
* [Linked List](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#linked-list)
* [Advantages of Linked List](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#advantages-of-linked-lists)
* [Disadvantages of Linked List](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#disadvantages-of-linked-lists)
* [Comparison of Linked Lists with Arrays & Dynamic Arrays](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Data-Types.md#comparison-of-linked-lists-with-arrays--dynamic-arrays)
* [Test](https)
* [Sorting](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#sorting)
* [Bubble Sort](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#bubble-sort)
* [Implementation](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#implementation)
* [Performance](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#performance)
* [Selection Sort](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#selection-sort)
* [Implementation](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#implementation-1)
* [Performance](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#performance-1)
* [Insertion Sort](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#insertion-sort)
* [Advantages](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#advantages-1)
* [Algorithm](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#algorithm-1)
* [Implementation](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#implementation-2)
* [Example](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#example)
* [Analysis](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#analysis)
* [Performance](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#performance-2)
* [Comparisons to Other Sorting Algorithms](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#comparisons-to-other-sorting-algorithms)
* [Shell Sort](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#shell-sort)
* [Implementation](https)
* [Performance](https)
* [Merge Sort](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#merge-sort)
* [Implementation](https)
* [Performance](https)
* [Heap Sort](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#heap-sort)
* [Implementation](https)
* [Performance](https)
* [Quicksort](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#quicksort)
* [Implementation](https)
* [Performance](https)
* [Tree Sort](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#tree-sort)
* [Implementation](https)
* [Performance](https)
* [Comparison of Sorting Algorithms](https://github.com/sunilsoni/interview-notes/blob/main/ds-algo/Sorting.md#comparison-of-sorting-algorithms)
* [Test](https)
* [Test](https)
* [Test](https)
* [Test](https)
* [Test](https)
# Spring- [Spring](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#spring)
* [Dependency Injection](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#dependency-injection)
* [Types of Dependency Injection](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#types-of-dependency-injection)
* [Constructor-based DI](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#constructor-based-di-)
* [Setter-method injection](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#setter-method-injection)
* [Constructor Vs Setter injection ](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#constructor-vs-setter-injection)
* [BeanFactory and ApplicationContext](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#beanfactory-and-applicationcontext)
* [Spring Bean life-cycle](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#spring-bean-life-cycle)
* [Spring Bean Scopes](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#spring-bean-scopes)
* [What happens when we inject a prototype scope bean in a singleton scope bean?](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#what-happens-when-we-inject-a-prototype-scope-bean-in-a-singleton-scope-bean)
* [How to inject a prototype scope bean in a singleton scope bean?](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#how-to-inject-a-prototype-scope-bean-in-a-singleton-scope-bean)
* [Stereotype Annotations](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#stereotype-annotations)
* [@Controller vs @RestController annotation](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#controller-vs-restcontroller-annotation:)
* [@Qualifier annotation](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#qualifier-annotation)
* [@Transactional annotation](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#transactional-annotation)
* [@ControllerAdvice annotation](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#controlleradvice-annotation)
* [@Bean annotation](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#bean-annotation)
* [@Component vs @Bean annotation](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#component-vs-bean-annotation)
* [Spring Boot Security using OAuth2 with JWT](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#spring-boot-security-using-oauth2-with-jwt)
* [OAuth2 Terminology](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#oauth2-terminology)
* [Json Web Token(JWT)](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#json-web-tokenjwt)
* [Spring Boot Rest Authentication with JWT Token Flow](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#spring-boot-rest-authentication-with-jwt-token-flow)
* [Web server vs application server](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring.md#web-server-and--application-server)
* [Spring Transaction Management](https://github.com/sunilsoni/interview-notes/blob/main/spring/Spring-Transaction-Management.md#spring-transaction-management)
* [Global Transactions](https://github.com/sunilsoni/interview-notes/blob/main/spring/Spring-Transaction-Management.md#global-transactions)
* [Local Transactions](https://github.com/sunilsoni/interview-notes/blob/main/spring/Spring-Transaction-Management.md#local-transactions)
* [Programmatic Approach:](https://github.com/sunilsoni/interview-notes/blob/main/spring/Spring-Transaction-Management.md#programmatic-approach)
* [Declarative Approach (@Transactional)](https://github.com/sunilsoni/interview-notes/blob/main/spring/Spring-Transaction-Management.md#declarative-approach-transactional)
* [propagation](https://github.com/sunilsoni/interview-notes/blob/main/spring/Spring-Transaction-Management.md#propagation)
* [isolation](https://github.com/sunilsoni/interview-notes/blob/main/spring/Spring-Transaction-Management.md#isolation)
* [readOnly](https://github.com/sunilsoni/interview-notes/blob/main/spring/Spring-Transaction-Management.md#isolation)
* [timeout](https://github.com/sunilsoni/interview-notes/blob/main/spring/Spring-Transaction-Management.md#isolation)# Spring Annotations
- [@Autowired](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#autowired)
- [@Inject vs @Autowired](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#inject-vs-autowired)
- [Component Scanning](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#component-scanning)
- [@ComponentScan](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#componentscan)
- [@ComponentScan Without Arguments](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#componentscan-without-arguments)
- [@ComponentScan With Arguments](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#componentscan-with-arguments)
- [@ComponentScan with Exclusions](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#componentscan-with-exclusions)
- [@ComponentScan in a Spring-Boot application](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#componentscan-in-a-spring-boot-application)
- [Difference between @Component, @Repository & @Service annotations?](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#difference-between-component-repository--service-annotations)
- [@Repository](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#repository)
- [@Service](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#service)
- [@Controller](https://github.com/sunilsoni/interview-notes/blob/main/spring/annotations.md#controller)
- [Test](https)# Spring MVC
- [Spring MVC](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#spring-mvc)
- [Spring MVC flow](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#spring-mvc-flow)
- [Spring Web Annotations](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#spring-web-annotations)
* [@RequestMapping](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#requestmapping)
* [@RequestBody](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#requestbody)
* [@PathVariable](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#pathvariable)
* [@RequestParam](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#requestparam)
* [@ResponseBody](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#responsebody)
* [@ExceptionHandler](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#exceptionhandler)
* [@ResponseStatus](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#responsestatus)
* [@Controller](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#controller)
* [@RestController](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#restcontroller)
* [@ModelAttribute](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#modelattribute)
* [@CrossOrigin](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#crossorigin)
* [Scheduler in cluster environment or run on multiple instances](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#scheduler-in-cluster-environment-or-run-on-multiple-instances)
* [Spring Scheduled Task running in clustered environment with ShedLock](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#spring-scheduled-task-running-in-clustered-environment-with-shedlock)
* [Configuration](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#configuration)
* [Creating Tasks](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#creating-tasks)
* [Spring](https)
* [Execute a Quartz Job only once in a multi-instance environment](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-mvc.md#execute-a-quartz-job-only-once-in-a-multi-instance-environment)# Spring Boot
- [Spring Boot](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#spring-boot)
- [Spring Boot Primary Goals](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#spring-boot-primary-goals)
- [Running Spring boot app at different port on server startup](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#running-spring-boot-app-at-different-port-on-server-startup)
- [Key Spring Boot features](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#key-spring-boot-features)
- [Spring Boot Starters ](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#spring-boot-starters)
- [Spring Boot Autoconfiguration ](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#spring-boot-autoconfiguration)
- [Easy-to-Use Embedded Servlet Container Support ](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#easy-to-use-embedded-servlet-container-support)
- [Spring Boot Annotations](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#spring-boot-annotations)
- [@SpringBootApplication](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#springbootapplication)
- [@EnableAutoConfiguration](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#enableautoconfiguration)
- [@ConditionalOnClass and @ConditionalOnMissingClass](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#conditionalonclass-and-conditionalonmissingclass)
- [@ConditionalOnBean and @ConditionalOnMissingBean](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#conditionalonbean-and-conditionalonmissingbean)
- [@ConditionalOnProperty](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#conditionalonproperty)
- [@ConditionalOnResource](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#conditionalonresource)
- [@ConditionalOnWebApplication and @ConditionalOnNotWebApplication](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#conditionalonwebapplication-and-conditionalonnotwebapplication)
- [@ConditionalExpression](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#conditionalonwebapplication-and-conditionalonnotwebapplication)
- [@Conditional](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#conditional)
- [Spring Boot Actuator](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#spring-boot-actuator)
- [pring-boot-actuator maven dependency](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#spring-boot-actuator-maven-dependency)
- [Predefined Endpoints](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#predefined-endpoints)
- [/info Endpoint](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#info-endpoint)
- [/metrics Endpoint](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#metrics-endpoint)
- [Custom Endpoint](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#custom-endpoint)
- [Building an Application with Spring Boot](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#building-an-application-with-spring-boot)
- [Starting with Spring Initializer](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#starting-with-spring-initializer)
- [Create a Simple Web Application](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#create-a-simple-web-application)
- [Create an Application class](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#create-an-application-class)
- [Run the Application](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#run-the-application)
- [Add Unit Tests](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#add-unit-tests)
- [Add Production-grade Services](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#add-production-grade-services)
- [Spring Boot CRUD Web Application with Thymeleaf, Spring MVC, Spring Data JPA, Hibernate, MySQL](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#spring-boot-crud-web-application-with-thymeleaf-spring-mvc-spring-data-jpa-hibernate-mysql)
- [Create Spring Boot Project](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#create-spring-boot-project)
- [Maven Dependencies](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#maven-dependencies)
- [Configure and Setup MySQL Database](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#configure-and-setup-mysql-database)
- [Model Layer - Create JPA Entity](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#model-layer---create-jpa-entity--)
- [Repository Layer](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#repository-layer---employeerepositoryjava)
- [Service Layer](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#service-layer)
- [Controller Layer](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#controller-layer---employeecontrollerjava)
- [View Layer: Thymeleaf](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#view-layer-thymeleaf)
- [Run Spring application and demo](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#run-spring-application-and-demo)
- [ Unit Testing REST APIs](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#unit-testing-rest-apis)
- [ CrudRepository vs. JpaRepository](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-boot.md#crudrepository-vs-jparepository)
# Spring AOP(Aspect Oriented Programming)
- [Spring AOP(Aspect Oriented Programming)](https://github.com/sunilsoni/interview-notes/blob/main/spring/spring-aop.md#spring-aop)# HTTP methods overview
- [HTTP methods overview](https://github.com/sunilsoni/interview-notes/blob/main/misc/http.md#http-methods-overview)
- [Idempotency in HTTP](https://github.com/sunilsoni/interview-notes/blob/main/misc/http.md#idempotency-in-http)
- [Safe Methods](https://github.com/sunilsoni/interview-notes/blob/main/misc/http.md#safe-methods)
- [Why DELETE method is defined as idempotent](https://github.com/sunilsoni/interview-notes/blob/main/misc/http.md#why-delete-method-is-defined-as-idempotent)
- [Why PATCH method is not idempotent](https://github.com/sunilsoni/interview-notes/blob/main/misc/http.md#why-patch-method-is-not-idempotent)
- [Why is PUT idempotent?](https://github.com/sunilsoni/interview-notes/blob/main/misc/http.md#why-is-put-idempotent)# HTTP Status Codes
- [HTTP Status Codes](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#http-status-codes )
- [1×× Informational](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#1-informational)
- [2×× Success](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#2-success)- [200 OK](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#2-success)
- [201 Created](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#2-success)
- [202 Accepted](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#2-success)
- [204 No Content](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#2-success)
- [205 Reset Content](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#2-success)
- [3×× Redirection](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#3-redirection)- [300 Multiple Choices](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#3-redirection)
- [4×× Client Error](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#4-client-error)
- [5×× Server Errorl](https://github.com/sunilsoni/interview-notes/blob/main/spring/http-Verbs.md#5-server-error)# Hibernate
- [Hibernate](https://github.com/sunilsoni/interview-notes/blob/main/hibernate/hibernate.md)
* [JPA vs Hibernate](https://github.com/sunilsoni/interview-notes/blob/main/hibernate/hibernate.md#jpa-vs-hibernate)
* [@Entity annotation](https://github.com/sunilsoni/interview-notes/blob/main/hibernate/hibernate.md#entity-annotation)
* [@Id & @GeneratedValue](https://github.com/sunilsoni/interview-notes/blob/main/hibernate/hibernate.md#id--generatedvalue)
* [get() and load() methods of Hibernate Session](https://github.com/sunilsoni/interview-notes/blob/main/hibernate/hibernate.md#get-and-load-methods-of-hibernate-session)
* [Session and SessionFactory](https://github.com/sunilsoni/interview-notes/blob/main/hibernate/hibernate.md#session-and-sessionfactory)
* [First Level and Second Level Cache](https://github.com/sunilsoni/interview-notes/blob/main/hibernate/hibernate.md#first-level-and-second-level-cache)
* [Test](https)# Angular
- [Single-page application(SPA) vs. Multiple-page application(MPA)](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#single-page-applicationspa-vs-multiple-page-applicationmpa)
- [Single-page application(SPA)](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#single-page-application)
- [Pros of the Single-Page Application](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#pros-of-the-single-page-application)
- [Cons of the Single-Page Application](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#cons-of-the-single-page-application)
- [Multiple-page application(MPA)](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#multiple-page-applicationmpa)
- [Pros of the Multiple-Page Application](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#pros-of-the-multiple-page-application)
- [Cons of the multiple-page application](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#cons-of-the-multiple-page-application)
- [Angular](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md)
* [AngularJS vs Angular](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#angularjs-vs-angular)
* [AngularJS](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#a-angularjs)
* [Angular](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#b-angular)
* [Why Angular](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#why-angular)
* [Components](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#components)
* [Templates](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#templates)
* [Dependency injection](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#dependency-injection)
* [Angular Routing and Navigation](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#angular-routing-and-navigation)
* [Angular Module](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#angular-module)
* [Bootstrapping Module](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#bootstrapping-module)
* [JIT vs AOT compilation](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#jit-vs-aot-compilation)
* [Advantages of AOT](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#advantages-of-aot)
* [What are the ways to control AOT compilation?](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#what-are-the-ways-to-control-aot-compilation)
* [How to optimize loading large data in angular?](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#how-to-optimize-loading-large-data-in-angular)
* [How an Angular application gets started or loaded?](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#how-an-angular-application-gets-started-or-loaded)
* [Angular Services](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-services.md#angular-services)
* [What is Interpolation](https://github.com/sunilsoni/interview-notes/blob/main/angular/Angular.md#what-is-interpolation)
* [Angular Routing and Navigation](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-routing.md#1-angular-routing-and-navigation)
* [Angular Component](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md)
* [What Is an Angular Component?](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md#what-is-an-angular-component)
* [Template](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md#template)
* [Class](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md#class)
* [Component Metadata](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md#component-metadata)
* [Communication Between Components](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md#communication-between-components)
* [Parent to Child](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md#communication-between-components)
* [Child to Parent](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md#communication-between-components)
* [Child to Parent](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md#communication-between-components)
* [Unrelated Components](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-components.md#communication-between-components)
* [Angular Directive](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-directive.md)
* [Components Directives](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-directive.md#components-directives)
* [Structural Directives](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-directive.md#structural-directives)
* [Attribute Directives](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-directive.md#attribute-directives)
* [How to Create Custom Directives?](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-directive.md#how-to-create-custom-directives)
* [Structural Directive vs Attribute Directive](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-directive.md#structural-directive-vs-attribute-directive)
* [Component vs Directive](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-directive.md#component-vs-directive)
* [Angular Pipes](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-pipes.md)
* [Syntax to use Pipes in Angular Application](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-pipes.md#syntax-to-use-pipes-in-angular-application)
* [Types of Pipes in Angular](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-pipes.md#types-of-pipes-in-angular)
* [1. Built-in Pipes](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-pipes.md#1-built-in-pipes)
* [2.Custom Pipes](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-pipes.md#2custom-pipes)
* [Parameterized Pipe](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-pipes.md#parameterized-pipe)
* [Custom Pipe](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-pipes.md#custom-pipe)
* [Pure vs Impure Pipe](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-pipes.md#pure-vs-impure-pipe)
* [Angular Data Binding](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-data-binding.md)
* [1. Interpolation](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-data-binding.md)
* [2. Property binding](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-data-binding.md)
* [3. Event binding](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-data-binding.md)
* [4. Two-way data binding](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-data-binding.md)
* [Angular Lazy Loading](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lazy-loading.md)
* [Angular Lifecycle Hooks](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#angular-lifecycle-hooks)
* [ngOnChanges](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#angular-lifecycle-hooks)
* [ngOnInit](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#angular-lifecycle-hooks)
* [ngDoCheck](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#angular-lifecycle-hooks)
* [ngAfterContentInit](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#angular-lifecycle-hooks)
* [ngAfterContentChecked](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#angular-lifecycle-hooks)
* [ngAfterViewInit](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#angular-lifecycle-hooks)
* [ngAfterViewChecked](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#angular-lifecycle-hooks)
* [ngOnDestroy](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#angular-lifecycle-hooks)
* [constructor() vs ngOnInit()](https://github.com/sunilsoni/interview-notes/blob/main/angular/angular-lifecycle-hooks.md#constructor-vs-ngoninit)
* [RxJS](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#rxjs)
* [Utility functions provided by RxJS](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#utility-functions-provided-by-rxjs)
* [RxJS Operator](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#rxjs-operator)
* [What is subscribing](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#what-is-subscribing)
* [Observable](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#observable)
* [Observer](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#observer)
* [Error handling in observables](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#error-handling-in-observables)
* [Observable creation functions](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#observable-creation-functions)
* [What will happen if you do not supply handler for observer?](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#what-will-happen-if-you-do-not-supply-handler-for-observer)
* [Promise vs Observable](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#promise-vs-observable)
* [Async Pipe](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#async-pipe)
* [HttpClient](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#httpclient)
* [Error handling](https://github.com/sunilsoni/interview-notes/blob/main/angular/RxJS.md#error-handling)# Design Patterns
- [Design Patterns](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md)
- [Creational Design Patterns](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/creational-design-pattern.md)
* [Simple Factory](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/creational-design-pattern.md#-simple-factory)
* [Factory Method](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/creational-design-pattern.md#-factory-method)
* [Abstract Factory](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/creational-design-pattern.md#-abstract-factory)
* [Builder](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/creational-design-pattern.md#-builder)
* [Prototype](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/creational-design-pattern.md#-prototype)
* [Singleton](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/creational-design-pattern.md#-singleton)
* [singleton class vs a static class](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/creational-design-pattern.md#singleton-class-vs-a-static-class)
- [Structural Design Patterns](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/structural-design-pattern.md)
* [Adapter](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/structural-design-pattern.md#-adapter)
* [Bridge](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/structural-design-pattern.md#-bridge)
* [Composite](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/structural-design-pattern.md#-composite)
* [Decorator](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/structural-design-pattern.md#-decorator)
* [Facade](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/structural-design-pattern.md#-facade)
* [Flyweight](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/structural-design-pattern.md#-flyweight)
* [Proxy](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/structural-design-pattern.md#-proxy)
- [Behavioral Design Patterns](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md)
* [Chain of Responsibility](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md#-chain-of-responsibility)
* [Command](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md##-command)
* [Iterator](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md##-iterator)
* [Mediator](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md##-mediator)
* [Memento](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md##-memento)
* [Observer](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md##-observer)
* [Visitor](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md##-visitor)
* [Strategy](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md##-strategy)
* [State](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md##-state)
* [Template Method](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/behavioral-design-pattern.md##-template-method)* [Designing a Java/J2EE application](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md#designing-a-javaj2ee-application)
* [Create a tiered architecture](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md#create-a-tiered-architecture)
* [Create a data model](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md#create-a-data-model)
* [Create a design model](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md#create-a-design-model)
* [Design considerations when decomposing business use cases into relevant classes](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md#design-considerations-when-decomposing-business-use-cases-into-relevant-classes)
* [Vertical slicing](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md#vertical-slicing)
* [Ensure the system is configurable](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md#ensure-the-system-is-configurable)
* [Design considerations during design, development and deployment phases](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md#design-considerations-during-design-development-and-deployment-phases)
* [Identifying performance and/or memory issues in your Java/J2EE application](https://github.com/sunilsoni/interview-notes/blob/main/design-pattern/design-pattern.md#identifying-performance-andor-memory-issues-in-your-javaj2ee-application)# Microservices
- [Microservices](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md)
* [SOA(Service-oriented architecture) vs Microservices](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#soaservice-oriented-architecture-vs-microservices)
* [Advantages of Microservices Architecture](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#advantages-of-microservices-architecture)
* [Disadvantages of Microservices](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#disadvantages-of-microservices)
* [Challenges of Microservices Architecture](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#challenges-of-microservices-architecture)
* [Gateway](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#gateway)
* [Microservices Monitor](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#microservices-monitor)
* [Microservices vs Monolithic Architecture](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#microservices-vs-monolithic-architecture)
* [How does Microservice Architecture work?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#how-does-microservice-architecture-work)
* [Communicating Between Microservices](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#communicating-between-microservices)
* [SOAP vs REST](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#soap-vs-rest)
* [Eureka Naming Server](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#eureka-naming-server)
* [Zuul](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#zuul)
* [Zipkin](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#zipkin)
* [Versioning of microservices](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#versioning-of-microservices)
* [How to send custom business errors or exceptions from a RESTful microservice to client application?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#how-to-send-custom-business-errors-or-exceptions-from-a-restful-microservice-to-client-application)
* [What are best practices for microservices architecture?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#what-are-best-practices-for-microservices-architecture)
* [Microservices caching](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#microservices-caching)
* [SOLID (solid design principles)](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#solid-solid-design-principles)
* [How frequent a microservice be released into production?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#how-frequent-a-microservice-be-released-into-production)
* [How to achieve zero-downtime during the deployments?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#how-to-achieve-zero-downtime-during-the-deployments)* [Blue-green deployment](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#blue-green-deployment)
* [How to slowly move users from older version of application to newer version?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#how-to-slowly-move-users-from-older-version-of-application-to-newer-version)
* [How will you monitor fleet of microservices in production?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#how-will-you-monitor-fleet-of-microservices-in-production)
* [How will you troubleshoot a failed API request that is spread across multiple services?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#how-will-you-troubleshoot-a-failed-api-request-that-is-spread-across-multiple-services)
* [What are different layers of a single microservice?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#what-are-different-layers-of-a-single-microservice)
* [Spring Cloud](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#spring-cloud)
* [application.yml vs bootstrap.yml](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#applicationyml-vs-bootstrapyml)
* [Netflix Eureka Server : implement service discovery in microservices architecture](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#netflix-eureka-server--implement-service-discovery-in-microservices-architecture)* [Netflix Eureka Server](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#netflix-eureka-server)
* [Consul Server](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#consul-server)
* [How does Eureka Server work?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#how-does-eureka-server-work)
* [Externalize configuration in a distributed system](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#externalize-configuration-in-a-distributed-system)
* [@RefreshScope : Refresh configuration changes on the fly in Spring Cloud environment](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#refresh-configuration-changes-on-the-fly-in-spring-cloud-environment)
* [Achieve client side load balancing in Spring Microservices using Spring Cloud](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#achieve-client-side-load-balancing-in-spring-microservices-using-spring-cloud)
* [client side load-balancer Ribbon in your microservices architecture](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#client-side-load-balancer-ribbon-in-your-microservices-architecture)
* [Use both LoadBalanced as well as normal RestTemplate object in the single microservice](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#use-both-loadbalanced-as-well-as-normal-resttemplate-object-in-the-single-microservice)
* [Use of Eureka for service discovery in Ribbon Load Balancer](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/micro-services.md#use-of-eureka-for-service-discovery-in-ribbon-load-balancer)
* [Managing transactions](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Transactions.md#managing-transactions)* [ACID Transactions](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Transactions.md#acid-transactions)
* [What is a distributed transaction?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Transactions.md#what-is-a-distributed-transaction)
* [Two-phase commit (2pc) pattern](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Transactions.md#two-phase-commit-2pc-pattern)
* [Benefits of using 2pc](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Transactions.md#benefits-of-using-2pc)
* [Disadvantages of using 2pc](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Transactions.md#disadvantages-of-using-2pc)
* [Saga pattern](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Transactions.md#saga-pattern)
* [Advantages of the Saga pattern](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Transactions.md#advantages-of-the-saga-pattern)
* [Disadvantages of the Saga pattern](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Transactions.md#disadvantages-of-the-saga-pattern)
* [Test](Test)
* [Test](Test)
* [Security in Microservices](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#security-in-microservices)* [Why Basic Authentication is not suitable in Microservices Context?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#why-basic-authentication-is-not-suitable-in-microservices-context)
* [Why OAuth2?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#why-oauth2)
* [OAuth2 Roles](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#oauth2-roles)
* [OAuth 2.0 grant types (OAuth flows)](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#oauth-20-grant-types-oauth-flows)
* [When shall I use resource owner credentials?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#when-shall-i-use-resource-owner-credentials)
* [When shall I use Authorization Code grant?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#when-shall-i-use-authorization-code-grant)
* [When shall I use client credentials?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#when-shall-i-use-client-credentials)
* [OAuth2 and Microservices](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#oauth2-and-microservices)
* [What is JWT?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#what-is-jwt)
* [What are use cases for JWT?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#what-are-use-cases-for-jwt)
* [How does JWT looks like?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#how-does-jwt-looks-like)
* [What is AccessToken and RefreshToken?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#what-is-accesstoken-and-refreshtoken)
* [How to use a RefreshToken to request a new AccessToken?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#how-to-use-a-refreshtoken-to-request-a-new-accesstoken)
* [How to call the protected resource using AccessToken?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#how-to-call-the-protected-resource-using-accesstoken)
* [Can a refreshToken be never expiring? How to make refreshToken life long valid?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#can-a-refreshtoken-be-never-expiring-how-to-make-refreshtoken-life-long-valid)
* [Generate AccessToken for Client Credentials.](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#generate-accesstoken-for-client-credentials)
* [Why there is no RefreshToken support in Oauth2 Client Credentials workflow?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#why-there-is-no-refreshtoken-support-in-oauth2-client-credentials-workflow)
* [Security in inter-service communication](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/Security%20in%20Microservices.md#security-in-inter-service-communication)# API Gateway
- [API Gateway](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#api-gateway)
- [How to retry failed requests at some other available instance using Client Side Load Balancer?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#how-to-retry-failed-requests-at-some-other-available-instance-using-client-side-load-balancer)
- [Circuit Breaker](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#circuit-breaker)
- [What is difference between using a Circuit Breaker and a naive approach where we try/catch a remote method call and protect for failures?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#what-is-difference-between-using-a-circuit-breaker-and-a-naive-approach-where-we-trycatch-a-remote-method-call-and-protect-for-failures)
- [Circuit Breaker Pattern](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#circuit-breaker-pattern)
- [Open, Closed and Half-Open states of Circuit Breaker](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#open-closed-and-half-open-states-of-circuit-breaker)
- [Use-cases for Circuit Breaker Pattern](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#use-cases-for-circuit-breaker-pattern)
- [Benefits of using Circuit Breaker Pattern](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#benefits-of-using-circuit-breaker-pattern)
- [What is Hystrix?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#what-is-hystrix)
- [Features of Hystrix library](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#features-of-hystrix-library)
- [How to use Hystrix for fallback execution?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#how-to-use-hystrix-for-fallback-execution)
- [When not to use Hystrix fallback on a particular microservice?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#when-not-to-use-hystrix-fallback-on-a-particular-microservice)
- [ignore certain exceptions in Hystrix fallback execution](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#ignore-certain-exceptions-in-hystrix-fallback-execution)
- [Request Collapsing feature in Hystrix](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#request-collapsing-feature-in-hystrix)
- [Circuit Breaker vs Hystrix](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#circuit-breaker-and-hystrix)
- [Where exactly should I use Circuit Breaker Pattern?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#where-exactly-should-i-use-circuit-breaker-pattern)
- [Where it should not be used?](https://github.com/sunilsoni/interview-notes/blob/main/micro-services/API-Gateway.md#where-it-should-not-be-used)# Kafka
- [Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md)
* [Advantages of Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#advantages-of-kafka)
* [Offset in Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#offset-in-kafka)
* [Consumer group in Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#consumer-group-in-kafka)
* [ZooKeeper in Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#zookeeper-in-kafka)
* [Can I use Kafka without Zookeeper?](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#can-i-use-kafka-without-zookeeper)
* [What is Zookeeper in Kafka? Can we use Kafka without Zookeeper?](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#what-is-zookeeper-in-kafka-can-we-use-kafka-without-zookeeper)
* [Partition in Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#partition-in-kafka)
* [APIs of Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#apis-of-kafka)
* [Load balancing of the server in Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#load-balancing-of-the-server-in-kafka)
* [Retention period in Kafka cluster](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#retention-period-in-kafka-cluster)
* [RabbitMQ vs Apache Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#rabbitmq-vs-apache-kafka)
* [Explain Apache Kafka Use Cases?](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#explain-apache-kafka-use-cases)
* [Kafka Cluster, and its key benefits](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#kafka-cluster-and-its-key-benefits)
* [Replicas in Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#replicas-in-kafka)
* [Starting a Kafka server](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#starting-a-kafka-server)
* [In the Producer, when does QueueFullException occur?](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#in-the-producer-when-does-queuefullexception-occur)
* [Confluent Kafka vs. Apache Kafka](https://github.com/sunilsoni/interview-notes/blob/main/kafka/kafka.md#Confluent-Kafka-vs-Apache-Kafka)# MongoDB
- [MongoDB](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#mongodb)
* [Key Components](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#key-components)
* [Document](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#document)
* [Collection](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#collection)
* [Namespace](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#namespace)
* [Databases in MongoDB](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#databases-in-mongodb)
* [Mongo Shell](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#mongo-shell)
* [Advantages of MongoDB:](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#advantages-of-mongodb)
* [Features of MongoDB](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#features-of-mongodb)
* [Indexes in MongoDB](https://github.com/sunilsoni/interview-notes/blob/main/mongo-db/mongo-db.md#indexes-in-mongodb)
* [MongoDB](https)# Database
- [Database](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#database)
- [SQL](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#sql)
- [Joins](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#joins)
- [Inner join](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#inner-join)
- [Left outer join](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#left-outer-join)
- [Right outer join](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#right-outer-join)
- [Full join](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#full-join)
- [Cross join](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#cross-join)
- [Self Join](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#self-join)
- [Keys](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#keys)
- [Indexes](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#indexes)
- [Non-clustered index](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#indexes)
- [Clustered index](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#indexes)
- [Composite index](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#indexes)
- [Cardinality](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#indexes)
- [Bitmap-index](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#indexes)
- [Data structures used](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#indexes)
- [SQL - Indexes](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#sql---indexes)
- [The CREATE INDEX Command](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#the-create-index-command)
- [Unique Indexes](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#unique-indexes)
- [Composite Indexes](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#composite-indexes)
- [Implicit Indexes](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#implicit-indexes)
- [The DROP INDEX Command](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#the-drop-index-command)
- [When should indexes be avoided?](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#when-should-indexes-be-avoided)
- [Queries](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#queries)- [SQL vs NoSQL](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#sql-vs-nosql)
- [SQL](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#sql-1)
- [NoSQL](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#nosql)
- [SQL vs NoSQL](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#sql-vs-nosql)
- [Database Types](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#database-types)
- [Schema](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#schema)
- [Data Model](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#data-model)
- [Ability to Scale](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#ability-to-scale)
- [ACID vs BASE](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#acid-vs-base)
- [Use Cases](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#use-cases)
- [Reasons to use an SQL database](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#reasons-to-use-an-sql-database)
- [Reasons to use a NoSQL database](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#reasons-to-use-a-nosql-database)
- [UNION vs UNION ALL](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#union-vs-union-all)
- [TRUNCATE vs DELETE, vs DROP](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#truncate-vs-delete-vs--drop)
- [TRUNCATE](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#truncate)
- [DELETE](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#delete)
- [DROP](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#drop)
- [Frequently asked queries](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#frequently-asked-queries)
- [Find all departments with sales more than 1000](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#frequently-asked-queries)
- [Print all employee ids with their manager ids](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#frequently-asked-queries)
- [Print all manager names with count of directs](https://github.com/sunilsoni/interview-notes/blob/main/database/database.md#frequently-asked-queries)
- [Find Nth highest salary in SQL - Oracle, MSSQL and MySQL](https)
-[Nth maximum salary in MySQL using LIMIT keyword](https)
-[2nd highest salary in MySQL without subquery](https)
-[3rd highest salary in MySQL using LIMIT clause](https)
-[Test](https)
-[Test](https)
-[Test](https)
-[Test](https)
# Maven- [Maven](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#Maven)
- [pom.xml](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#pomxml)
- [Maven build life-cycle](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#maven-build-life-cycle)
- [validate](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#maven-build-life-cycle)
- [compile](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#maven-build-life-cycle)
- [test](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#maven-build-life-cycle)
- [package](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#maven-build-life-cycle)
- [verify](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#maven-build-life-cycle)
- [install](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#maven-build-life-cycle)
- [deploy](https://github.com/sunilsoni/interview-notes/blob/main/maven/maven.md#maven-build-life-cycle)# Unix
- [Unix](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#unix)
- [Find](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#find)
- [Search](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#search)
- [Processes](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#processes)
- [File permissions](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#file-permissions)
- [List files](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#list-files)
- [Symlinks](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#symlinks)
- [Checking logs](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#checking-logs)
- [Text manipulation](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#text-manipulation)
- [Sed](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#sed)
- [Networking](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#networking)
- [Space](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#space)
- [Miscellaneous](https://github.com/sunilsoni/interview-notes/blob/main/unix/Unix.md#miscellaneous)# DevOps Tools
- [Docker](https)
- [Git](https://github.com/sunilsoni/interview-notes/blob/main/devops/git/git.md#git)
* [Advantages of git](https://github.com/sunilsoni/interview-notes/blob/main/devops/git/git.md#advantages-of-git)
* [git push](https://github.com/sunilsoni/interview-notes/blob/main/devops/git/git.md#git-push)
* [git pull vs git fetch](https://github.com/sunilsoni/interview-notes/blob/main/devops/git/git.md#git-pull-vs-git-fetch)
* [conflict](https://github.com/sunilsoni/interview-notes/blob/main/devops/git/git.md#conflict)
* [resolve a conflict](https://github.com/sunilsoni/interview-notes/blob/main/devops/git/git.md#resolve-a-conflict)
* [git clone](https://github.com/sunilsoni/interview-notes/blob/main/devops/git/git.md#git-clone)
* [git pull origin](https://github.com/sunilsoni/interview-notes/blob/main/devops/git/git.md#git-pull-origin)
* [git commit a](https://github.com/sunilsoni/interview-notes/blob/main/devops/git/git.md#git-commit-a)
- [Jenkins](https)
* [Continuous delivery](https://github.com/sunilsoni/interview-notes/blob/main/devops/jenkins/jenkins.md#continuous-delivery)
- [Kubernetes](https)# Swagger
- [Swagger](https://github.com/sunilsoni/interview-notes/blob/main/spring/swagger.md#swagger)
- [Integrate Swagger into your microservices](https://github.com/sunilsoni/interview-notes/blob/main/spring/swagger.md#integrate-swagger-into-your-microservices)
- [Swagger annotations](https://github.com/sunilsoni/interview-notes/blob/main/spring/swagger.md#swagger-annotations)
- [@Api](https://github.com/sunilsoni/interview-notes/blob/main/spring/swagger.md#swagger-annotations)
- [@ApiOperation](https://github.com/sunilsoni/interview-notes/blob/main/spring/swagger.md#swagger-annotations)
- [@ApiResponse](https://github.com/sunilsoni/interview-notes/blob/main/spring/swagger.md#swagger-annotations)
- [@ApiParam](https://github.com/sunilsoni/interview-notes/blob/main/spring/swagger.md#swagger-annotations)
- [Maven plugin](https://github.com/sunilsoni/interview-notes/blob/main/spring/swagger.md#maven-plugin)# Cucumber
- [Cucumber](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#cucumber)
- [Advantages of Cucumber](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#advantages-of-cucumber)
- [Example](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#example)
- [Features in Cucumber](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#features-in-cucumber)
- [Feature file](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#feature-file)
- [Step Definition](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#step-definition)
- [Gherkin](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#gherkin)
- [user login feature Example](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#user-login-feature-example)
- [Test harness in Cucumber](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#test-harness-in-cucumber)
- [Selenium vs Cucumber](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#selenium-vs-cucumber)
- [TDD(Test-Driven Development)](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#tddtest-driven-development)
- [BDD and TDD](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#bdd-and-tdd)
- [Cucumber profiles](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#cucumber-profiles)
- [Scenario Outline](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#scenario-outline)
- [Scenario and Scenario Outline](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#scenario-and-scenario-outline)
- [Step Definition](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#step-definition-1)
- [Background in a Feature file](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#background-in-a-feature-file)
- [Junit Test runner class](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#junit-test-runner-class)
- [Tags in cucumber-bdd](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#tags-in-cucumber-bdd)
- [Cucumber Hooks](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#cucumber-hooks)
- [Name any two testing framework that can be integrated with Cucumber?](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#name-any-two-testing-framework-that-can-be-integrated-with-cucumber)
- [What are the two files required to run a cucumber test?](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#what-are-the-two-files-required-to-run-a-cucumber-test)
- [Examples Table or Scenario Outline vs Data Table](https://github.com/sunilsoni/interview-notes/blob/main/Cucumber/Cucumber.md#examples-table-or-scenario-outline-vs-data-table)# Agile
- [Agile Scrum Ceremonies](https://github.com/sunilsoni/interview-notes/blob/main/agile/agile.md#agile)
* [Sprint Planning](https://github.com/sunilsoni/interview-notes/blob/main/agile/agile.md#sprint-planning)
* [Daily Scrum](https://github.com/sunilsoni/interview-notes/blob/main/agile/agile.md#daily-scrum)
* [Sprint Review](https://github.com/sunilsoni/interview-notes/blob/main/agile/agile.md#sprint-review)
* [Sprint Retrospective](https://github.com/sunilsoni/interview-notes/blob/main/agile/agile.md#sprint-retrospective)# Amazon Web Services (AWS)
- [AWS](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#amazon-web-services-aws)
- [Key components of AWS](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#key-components-of-aws)
- [Elastic Cloud Compute (EC2)](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#elastic-cloud-compute-ec2)
- [Simple Storage Service (S3)](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#simple-storage-service-s3)
- [Objects and Buckets](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#objects-and-buckets)
- [S3 Storage Classes](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#s3-storage-classes)
- [Durability and Availability](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#durability-and-availability)
- [Storage Classes for Frequently Accessed Objects](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#storage-classes-for-frequently-accessed-objects)
- [Storage Classes for Infrequently Accessed Objects](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#storage-classes-for-infrequently-accessed-objects)
- [Storage Class for Both Frequently and Infrequently Accessed Objects](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#storage-class-for-both-frequently-and-infrequently-accessed-objects)
- [Access Permissions](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#access-permissions)
- [Bucket Policies](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#bucket-policies)
- [User Policies](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#user-policies)
- [Bucket and Object Access Control Lists](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#bucket-and-object-access-control-lists)
- [Encryption](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#encryption)
- [Versioning](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#versioning)- [Relational Database Service (RDS)](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#relational-database-service-rds)
- [Database Engines](https)
- [Licensing](https)
- [Instance Classes](https)
- [Standard](https)
- [Memory Optimized](https)
- [Burstable Performance](https)
- [Scaling Vertically](https)
- [Storage](https)
- [General-Purpose SSD](https)
- [Provisioned IOPS SSD](https)
- [Magnetic](https)
- [Scaling Horizontally with Read Replicas](https)
- [High Availability with Multi-AZ](https)
- [Backup and Recovery](https)
- [Route 53](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#route-53)
- [CloudWatch](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#cloudwatch)
- [CloudWatch Metrics](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#cloudwatch-metrics)
- [CloudWatch Alarms](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#cloudwatch-alarms)
- [CloudWatch Dashboards](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#cloudwatch-dashboards)
- [CloudWatch Logs](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#cloudwatch-logs)
- [Metric Filters](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#metric-filters)
- [CloudWatch Events](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#cloudwatch-events)
- [CloudTrail](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#cloudtrail)
- [API and Non-API Events](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#api-and-non-api-events)
- [Management and Data Events](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#management-and-data-events)
- [Event History](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#event-history)
- [Trails](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#trails)
- [Log File Integrity Validation](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#log-file-integrity-validation)
- [Cost Explorer](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#cost-explorer)
- [Cost and Usage](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#cost-and-usage)
- [Reservation reports](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#reservation-reports)
- [Reserved Instances Utilization](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#reserved-instances-utilization)
- [Reserved Instances Coverage](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#reserved-instances-coverage)
- [Reserved instance recommendations](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#reserved-instance-recommendations)
- [Amazon DynamoDB](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#amazon-dynamodb)
- [Items and Tables](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#items-and-tables)
- [Scaling Horizontally](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#scaling-horizontally)
- [Queries and Scans](https://github.com/sunilsoni/interview-notes/blob/main/aws/aws.md#queries-and-scans)
- [AWS Lambda](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#aws-lambda)
- [Introducing AWS Lambda](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#introducing-aws-lambda)
- [Key benefits of serverless computing](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#key-benefits-of-serverless-computing)
- [No ware to manage:](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#no-ware-to-manage)
- [Faster execution time:](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#faster-execution-time)
- [Really low costs:](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#really-low-costs)
- [Support of popular programming languages:](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#support-of-popular-programming-languages)
- [Microservices compatible:](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#microservices-compatible)
- [Event-driven applications:](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#event-driven-applications)
- [Cons or Disadvantage of serverless computing](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#cons-or-disadvantage--of-serverless-computing)
- [Execution duration:](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#execution-duration)
- [Complexity:](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#complexity)
- [Lack of tools](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#lack-of-tools)
- [Vendor lock-in:](https://github.com/sunilsoni/interview-notes/blob/main/aws/AwsLambda.md#vendor-lock-in)
- [Test](http)
- [Test](http)
- [Test](http)# Good Practices
- [Good Practices for REST API Design](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#good-practices-for-rest-api-design)
* [Accept and respond with JSON](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#accept-and-respond-with-json)
* [Use nouns instead of verbs in endpoint paths](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#use-nouns-instead-of-verbs-in-endpoint-paths)
* [Nesting resources for hierarchical objects](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#nesting-resources-for-hierarchical-objects)
* [Handle errors gracefully and return standard error codes](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#handle-errors-gracefully-and-return-standard-error-codes)
* [Allow filtering, sorting, and pagination](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#allow-filtering-sorting-and-pagination)
* [Maintain Good Security Practices](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#maintain-good-security-practices)
* [Cache data to improve performance](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#cache-data-to-improve-performance)
* [Versioning our APIs](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#versioning-our-apis)
- [Java code review checklist](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#java-code-review-checklist)
* [Basic Checks (before)](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#code-quality)
* [The code was tested](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#code-quality)
* [Clean Code](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#code-quality)
* [Best Practices](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#code-quality)
* [Exception Handling](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#exception-handling)
- [Common Java Vulnerabilities](https://github.com/sunilsoni/interview-notes/blob/main/misc/owasp.md#common-java-vulnerabilities)
* [Injection Flaws](https://github.com/sunilsoni/interview-notes/blob/main/misc/owasp.md#injection-flaws)
* [Cross Site Scripting (XSS)](https://github.com/sunilsoni/interview-notes/blob/main/misc/owasp.md#cross-site-scripting-xss)
* [How does XSS work?](https://github.com/sunilsoni/interview-notes/blob/main/misc/owasp.md#how-does-xss-work)
* [Cross Site Request Forgery(CSRF)](https://github.com/sunilsoni/interview-notes/blob/main/misc/owasp.md#cross-site-request-forgerycsrf)
* [Test](http)
- [Resolving a Production Issue on a Live Server](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#resolving-a-production-issue-on-a-live-server)
- [Notify All Stakeholders](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#notify-all-stakeholders)
- [Reproduce : Replicate the production environment locally](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#reproduce--replicate-the-production-environment-locally)
- [Root Cause Analysis & Fix](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#root-cause-analysis--fix)
- [Re-test & Regression Testing](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#re-test--regression-testing)
- [Backup the System Before Implementing Complex Solution](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#backup-the-system-before-implementing-complex-solution)
- [Document the Problem and How it was Resolved](https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.https://github.com/sunilsoni/interview-notes/blob/main/misc/GoodPractices.md#backup-the-system-before-implementing-complex-solutiond#backup-the-system-before-implementing-complex-solution)