lazy evaluation : Java Glossary

In computing, laziness is a virtue. The more ways you can think of to have the
computer avoid doing work, the faster your programs will run.

It can often be optimal in computing to procrastinate computation to the last
possible microsecond. If you are lucky, the computer never needs to do the work.

One common example of procrastination is to use a singleton object instead of
static fields. You don’t create the object until you actually need it. Just
before every use, you must execute code roughly like this:

Just marking a list as to-be-sorted, rather than sorting it right away.
Don’t bother sorting it until somebody actually makes a request that requires
it to be in sorted order. When you do sort it, mark it as sorted, so you
won’t waste time resorting it.

The && operator in Java avoids
evaluation the right hand operand if the left hand operand is false. This is
sometimes called lazy evaluation, short circuit evaluation or McCarthy evaluation.
(John McCarthy was the creator of Lisp and is sometimes known as the father of
artificial intelligence.)

When a function computes a value and caches the result, to produce it quickly in
future without recomputing in case someone asks for the same inputs again, that is
also sometimes referred to as lazy evaluation.