I understand that Future is an interface and FutureTask is the implementation. But I haven't used the FutureTask in any of the code. We just mention Future as the return type along with Object type. So, what is the actual difference between these two and how FutureTask is used in the coding?
The difference is that Future is an interface and FutureTask a class implementing it. I really don't know what else I can tell you.
What is the difference between List and ArrayList?
I think there isn't much reason to use this class directly. Just use the Future references returned by an ExecutorService. If you want to create a special task that does special things during execution of the task, you can extend FutureTask.
The mind is a strange and wonderful thing. I'm not sure that it will ever be able to figure itself out, everything else, maybe. From the atom to the universe, everything, except itself.