I'm cleaning out my pile of books that I ought to have reviewed some time ago. On the top of the pile is "Beginning J2ME: From Novice to Professional", by Sing Li and Jonathan Knudsen.
J2ME is a jungle of configurations, profiles, and APIs. A beginner's book might soar over the jungle like an exotic bird, pretty but insubstantial. Such a book would see everything from a 20,000 foot view. You'd see the lay of the land, but wouldn't get your feet wet.
Another approach would be for the authors to grab their machetes and start hacking their way in, following a particular path. You'd get all dirty and sweaty and get a lot of experience, but not necessarily understand exactly how you got there.
This book decidedly takes this latter path. After a brief introductory chapter, it concentrates on the core APIs and the most commonly implemented configuration and device profile. Although there's plenty of practical information on tools and lots of code examples, as a reader unfamiliar with J2ME, and someone who doesn't own a Java-enabled phone, I felt disoriented. As an introduction to J2ME programming, I felt the book was lacking in background and motivations.
Striking a balance between the two approaches I described might be a fool's errand. Therefore you would probably need one book from each category to really get involved in J2ME development.