The biggest mistake in the Java programming language. Primitive types (such as long, int, short, byte, char and boolean) necessitate excessive overloading and duplicate code because they are not objects. The designers should have learned from Smalltalk that 'everything's an object' is a Good Thing and can be implemented efficiently, especially in a typed language like Java.