# Adobe Interview Questions with Answers

6 previously-asked interview questions from Adobe's hiring process, each with the correct answer and a worked explanation. Written against the company's actual test pattern.

_Source: Astra (https://useastra.in). Updated 2026-09-05._

### 1. What is the difference between a deep copy and a shallow copy?

**Answer:** A shallow copy duplicates the top-level object but shares references to nested objects, so changes to nested data affect both. A deep copy recursively duplicates everything, producing a fully independent object.

**Explanation:** Shallow shares nested references; deep duplicates everything.

### 2. What is virtual memory?

**Answer:** Virtual memory is an abstraction that gives each process its own large address space, using paging to map virtual addresses to physical memory and disk. It lets programs exceed physical RAM and provides isolation between processes.

**Explanation:** Address-space abstraction using paging to disk.

### 3. What is a race condition and how do you prevent it?

**Answer:** A race condition occurs when the result depends on the timing of concurrent threads accessing shared data. Prevent it with synchronization (locks, mutexes, atomics), avoiding shared mutable state, or using immutable or thread-local data.

**Explanation:** Timing-dependent bug on shared state; fix with synchronization.

### 4. What is the difference between normalization and denormalization?

**Answer:** Normalization splits data to remove redundancy and anomalies, improving write consistency but needing more joins. Denormalization adds redundancy to speed up reads in read-heavy systems, at the cost of update complexity.

**Explanation:** Normalize for consistency; denormalize for read speed.

### 5. What is the difference between compile time and runtime polymorphism?

**Answer:** Compile time polymorphism is resolved during compilation, achieved by method overloading (and operator overloading). Runtime polymorphism is resolved during execution through method overriding and dynamic dispatch, enabling behaviour based on the actual object type.

**Explanation:** Compile time: overloading. Runtime: overriding via dynamic dispatch.

### 6. Tell me about yourself.

**Answer:** Give a concise 60 to 90 second overview: your degree, strong technical skills, a project you built with its impact, and why Adobe interests you. Keep it structured and relevant.

**Explanation:** Structured pitch: background, skills, project, fit.

More Adobe preparation, including the full recruitment process: https://useastra.in/campus/adobe
