I quote from Herbert Schildt Chapter 3 Data types, Variables and Arrays :
The primitive types represent single values not complex objects. Although Java is otherwise completely object-oriented, the primitive types are not. The reason for this efficiency. Making the primitive types would have degraded performance too much.
The primitive types are defined to have an explicit range and mathematical behavior. Languages such as C, C++ allow the size of an integer to vary based upon the dictates of the execution environment. However, Java is different. Because of Java’s portability requirement, all data types have a strongly defined range. For example, an int is always 32-bit regardless of the particular platform. This allows programs to be written that are guaranteed to run without porting on any machine architecture. While strictly specifying the size of an integer may cause a small loss of performance in some environments, it is necessary in order to achieve portability.
What does he mean by the last 2 lines ? And how come specifying the size of an integer may cause a small loss of performance in some environments?