I have certain expectations from your book. For example, I would like to know first of all, how do you differentiate between the GOOD parts and the BAD parts of the Java programming language - does this book cover the internals of the topics mentioned in the TOC OR just the externals required in day-to-day coding? Also, does it cover good programming practices while using, say Collections? In short, please describe in brief the gist of the book.
First of all, "good" is a relational term, not an absolute-- a language isn't, I argue, good; a language is good for doing some kind of programming task. I then argue that Java is good for doing large-scale, multi-person projects for software that needs to work reliably and has a long lifetime (and, therefore, will need to be changed).
I then talk about the features of the language that make it good for those kinds of tasks. I do talk a bit about the internals, but this isn't a book about the guts of Java. I do talk about good programming practice. And I talk a fair amount about how you design systems for this sort of thing.