Java is not a purely object-oriented language due to its use of primitive data types like int and float, which are not objects. It supports core OOP concepts such as abstraction, encapsulation, inheritance, and polymorphism, but ultimately requires operations on these primitives to be performed through objects, classifying it as a hybrid language. Unlike fully object-oriented languages like Smalltalk, Java only supports single inheritance.