Simplicity does not precede complexity, but follows it. - Alan Perlis, Epigrams In Programming
Implementing compareTo | Implementing equals |
Never rely on finalize | Implementing hashCode |
Implementing toString | Avoid clone |
Designing for subclassing | Consider composition instead of subclassing |
Overridable methods need special care | Remember styles of inheritance |
Assert is for private arguments only | Assertions in general |
Assert use cases | Force enabling of assertions |
Some classes need readResolve | Implementing Serializable |
Serialization and subclassing |
Lambdas only for simple cases | Understand the functional style |
Static import of Collectors | Annotate functional interfaces |
Prefer standard functional interfaces | Beware forEach terminals |
Using Ant for build scripts | Use Version Control tools |
Using Tomcat for servlets | Using Maven for builds |
User Comments |
"I just wanted to take a second to say that this site is really useful. It's not all that often that I come across a site that has some good design information without a bunch of boring fluff. It reminds me of reading Effective Java, which I would consider to be one of the best books I've ever picked up."
|
"I love this site. It's one of the best laid out and most useful sites that I've ever used. Thank you very much."
|
"First I have to say, what a great site. We were thinking about starting something similar inside the company, but what better news than to hear that someone has done it for us. Keep up the great work."
|
"I do think this site is excellent. Keep it up."
|
"Awesome for a beginner like me!"
|
"A Great Site!!! I refer to it often. I really enjoy your common sense and straight forward, flexible approach to these issues. Thanks!"
|
"Thanks for a great site, it really stands out from the crowd. Keep up the good work!"
|