Good question. They both need objects. Finish - reach the end of something. Complete - do everything required.
"I have just finished the book" - a) I have read it till the end
or b) I have just finished writing the book (if we know from context that you started to write it).
"I have just completed the book" - I have just finished writing the book.
"Finish" can have the more dynamic sense that "complete" expresses. This should be obvious from the context. If we know you are working on something like an assignment, we will know that by saying that you have "finished" it, you have completed it.
On the other hand, "completing a book" would never mean finished reading it. You could say "completed reading the book" because the completing refers to the activity of reading, not the production of the book.