There are tons of books and articles about how to design and write good Java code, but surprisingly little about the specific topic of API design. On my artima.com blog I wrote a summary of what I've learnt on the subject from various sources and my own experience. This has been the single most comment-provoking blog entry I've ever written, which is either because it's a subject that people feel strongly about or because it's the end of the year and there's nothing else to comment on.