This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I'd suggest that you first try a quick search on each of the three Java in General forums and the OO forum for this topic as it has been discussed here a few times already. Note that the search page link is at the top right of this page.