A task node does not require to write custom Java handlers. A task node will create task records in the task table for every task defined.
A node is nothing more than an interface. Your own implementation can do anything (print hello world, block the current thread, or actually do something useful).
Task nodes are to be used for user interaction, Nodes must be used when the given set of activitity types is not enough for your use case.