As for me, Head First Java is good choice. But reading is not enough. You have to do exercises, lot of them. For examle, this exercises were interesting and useful for me.
I have been independently studying Java for 4 months and after I got my first work in Java.