It is documented in the javadoc:
The primitive Java types (boolean, byte, char, short, int, long, float, and double), and the keyword void are also represented as Class objects.
It is particularly useful when you want to call a method that expects primitive arguments via reflection.
Imagine a method:
class MyClass {
void m(int i) {}
}
You can access it with:
MyClass.class.getDeclaredMethod("m", int.class);