idempotent : Java Glossary

In mathematics it means a number that when multiplied by itself gives the same
number, e.g. 0 * 0 = 0 and 1 * 1 = 1.

The computing science world uses the term for any operation than you can use
repeatedly safely and still have the effect of using it only once. This would
include operations having no lasting observable effect on the state of the world e.g.
a database query with no history of it recorded and no change to the database, also
an operation that if run more than once makes no further changes to the state, e.g. C
header files that are safe to include multiple times. It would include an
initialisation routine that allocated a singleton only the first time it is run and
thereafter just returns a reference to that singleton. The idempotent operation is
permitted to have side effects or change state. It is just that it must be safe to
repeat the operation without any further consequential effect.