---
# System prepended metadata

title: Review matierial

---

# Review matierial

## Data Structures & algorithms
- Linked Lists
- Trees and Graphs
- Arrays and Strings
- Sorting

## Concepts
- Recursion 
- Concurrency
- Object Oriented Programming

## Design Patterns
- Inheritance and interfaces 
- Possible multiplicity
- Dynamic binding
- Builder
- Singleton
- Iterator
- Observer
- Decorator
- Constructor Pattern
- Module Pattern
- Revealing Module Pattern
- Mediator Pattern
- Prototype Pattern
- Command Pattern
- Facade Pattern
- Factory Pattern
- Mixin Pattern
- Flyweight

## Concept questions

- INTERFACES AND ABSTRACT CLASSES
    - What is the difference between an interface and an abstract class in object-oriented programming?
- VIRTUAL METHODS
    - What are virtual methods? Why are they useful?
- MULITPLE INHERITENCE
    - Why do C# and Java disallow the multiple inheritance of classes?
- RESOURCE MANAGEMENT
    - Suppose you have a function that needs to access a limited system resource. The code must call an API function openResource to obtain a handle to the resource, and must pass this handle to a function closeResource when it’s done. How can you ensure that closeResource will be called in all cases and the resource will never be leaked?