Không, Java không thuần hướng đối tượng vì vẫn tồn tại các kiểu nguyên thủy (primitive types) như int, float, double, boolean, char... bên cạnh các đối tượng.
- Một ngôn ngữ OOP thuần túy phải coi mọi thứ là đối tượng.
- Java giữ primitive types vì lý do hiệu năng và tiết kiệm bộ nhớ — thao tác với int nhanh hơn rất nhiều so với dùng Integer.