Whom is it for? I don't know! For beginners, it's going to be hard to understand (it doesn't necessarily explain concepts before introducing them). For intermediate and advanced coders, it's going to contain little new information (if at all). For me, an advanced beginner / intermediate, it was seldom useful and quite often confusing. Even though it's short, the book is a colossal drag. The author's way of naming classes and members makes it even worse. It turns out, "sf", "vf" is not exactly readable! I picked it because it was recommended in Effective Java, a book that's a cut above on all counts. Read it instead if you're an intermediate like me. If you're a beginner, try Head First Java
P.S.: For those interested, I read the 2002 edition so it was quite outdated too