How Memory Works In Java