Javadocs are interpreted as HTML, so special characters such as <, >, and & must be escaped.
Text within @code, @literal and @link tags is exempt from this.
/** Returns whether n > 3. */ boolean greaterThanThree(int n);
Could be rendered as one of these instead:
/** Returns whether n > 3. */ boolean greaterThanThree(int n); /** Returns whether {@code n > 3}. */ boolean greaterThanThree(int n);
A common pitfall is type parameters. The following Javadoc is valid, but contains an unknown HTML tag (Integer):
/** Returns an Iterable<Integer> of prime numbers. */ Iterable<Integer> generatePrimes();
Prefer writing generic types as {@code Iterable<Integer>} (or {@link }).
Suppress by applying @SuppressWarnings("UnescapedEntity") to the element being documented.