Memory management Static: everything must be known at compile time Stack: enables recursion enables stack allocated arrays (growing data) Heap: pros: data can outlive function cons: need to free memory GC (Garbage Collector) Heap with no need to free memory by hand