Java primitive types have fixed sizes: int is 32-bit signed integer, float is 32-bit IEEE 754 floating-point, long is 64-bit signed integer. Option D is incorrect because short is 16-bit signed, not 18-bit. These sizes are guaranteed across all JVM implementations for consistency.