If you repeat yourself, for example, by copying and pasting, you are doing it wrong. Java is an OO language, use it that way.
If you do not use design patterns, you reinvent the wheel. It's amazing how many problems are best solved by the original GOF design templates. Only after reviewing them should you do something else.
Keep method names long, your parameter names are described, but your methods are short. This is a bit subjective, but the more you separate things, the easier it is to fix and reuse the code. If you cannot explain what your method does in the sentence, you either have a usually difficult problem, or most likely your methods are trying to do too much.
Avoid every object doing too much. Look at the names on your objects. If there are methods in the object that are not related to the name of the object, move them somewhere where they may belong.
Method overloading is good, and it can save you from typing all over the place.
Try to avoid being smart in a way that makes it hard to understand the code you wrote. Use as many built-in language features as possible (for example, iterators). Do the simplest thing that could work. You will thank yourself later.
Source control is necessary even if you are a single developer, working alone. It saved my neck more than I can count.
After the initial debugging, nothing should be hardcoded. For items used in the application, such as the environment and related messages, store as many items as possible in the database. If you think that these elements will never change, use property files, and the Java globals file for things that you are sure will never change, because they will.
Automatically format your code using the IDE, even if it makes it ugly, you're still better off in the long run.
If there is a well-known and reliable foundation for something, use it. JSF or Struts will be better than anything you could develop yourself, even if you think your own MVC environment is really cool. The same thing with perseverance, use something basic. If possible, use as little as possible or one structure. You could impress your friends to have a Spring, Shale, JSF, Struts project using Hibernate along with some other structures you developed yourself, but it's really just complexity for the sake of complexity.