Answer from cs61c-cm (Christopher Marcellino 15775059) for Question 3 In java you can 'new' and object. There is no direct equivalent to free in Java; Java uses a hybrid generational garbage collector to collect no longer reachable objects. C premits programs to cast void points to and from pointers of any type, including large integers, so determining which objects are pointed to can be tricky. Also, since pointers can't be redirected trivially, since the may be present in many places, defragmenting the heap is near impossible, unlike Java. Nonetheless people have modified compiliers and put some restricitions on C code to do mark and sweep garbage collection.