I am working on a reliability and speed critical application which uses one model and one view that is manipulated by different controllers. When switching to a other controller I call its constructor after which the current controller does not have any input or any code still needed to run. In a manner like this:
Java Code:
public void actionPerformed(ActionEvent e){
				new CustomerSelectController(screen, db, 0);
So there is never an assignment like this:
Java Code:
Controller controller = new CustomerSelectController(screen, db, 0);

Now I have tested to see if garbage control clean up the old controller by displaying free memory before creating the new controller, memory after creation and then calling System.gc and displaying memory. Every time memory was freed.

Now my question is if in fact garbagecontrol cleans up these objects?