Answer from cs61c-ck (Allen Lee 16583554) for Question 3 Whenever we create an object with the "new" keyword in Java, we automatically allocate memory for the object, like the "malloc" function in C. There's no command in Java that is equivalent to "free" in C; dead dynamic variables are automatically freed by the garbage collector in the Java Virtual Machine. We can't build an automatic memory management system in C because the programmer has more access to the memory using C than in Java. Specifically, the programmer can cast void pointers to the pointers returned by malloc. Thus, the programmer has perhaps too much control, and can allocate and free memory for any data type.