If you're a beginner I'd suggest you try Head First Java, I learned Java better when I read it, than in school.