herbert schildt
Balaguruswamy is the best book for beginners and when you feel you know something then switch to Herbert Scheildt.
ivor horton and daniel liang is best for java..