Java is often considered "not 100% object-oriented" due to a few reasons:
Primitive Data Types: Java includes primitive data types like int, double, etc., which are not objects. They do not have methods or behaviors associated with them.
Static Methods: Java allows for the creation of static methods and variables within a class. These belong to the class itself, rather than to any instance of the class. This breaks the pure object-oriented paradigm.
Multiple Inheritance: Java does not support multiple inheritance for classes. This means a class cannot extend more than one class, which is a characteristic of some purely object-oriented languages.