There is actually a good reason to include it not mentioned in these answers:
If the existence of a no-argument constructor is explicitly part of the contract for your object, then it should be explicitly stated.
If you explicitly intend for the client to subclass your code, as in e.g. Java Swing, then its a good idea to explicitly make an accessible no-arg constructor, even if there are no other constructors. Otherwise, if another programmer, in their wisdom, decides to make another constructor, the new explicit constructor will remove the implicit no-arg constructor and break the client code.
If the code is sub classed in your own code base then this will show up as a compiler error, but if your code is to be published as a jar, and sub-classed by the client there will be no compiler error.
Of course, you could argue that if its part of your contract you should have a junit test for that, and you would be right! But if you are working on a large code base where tests take hours to run for your daily build, breaking your daily build because you forgot you had to explicitly make a no arg constructor when adding a constructor is a huge time waste when an explicit constructor and a comment would have avoided any chance of an error.
The goal of good code is to make it as easy as possible for another developer to change it without a mistake!