To decide if Java is "pure Object Oriented," you'd need a precise definition of what that meant. Of course, there is no standard definition of this term, so you're free to choose your own. If you choose one which says "a pure object-oriented language has no primitives, then Java doesn't fit. If you choose one that says primitives are OK, then Java does fit. In any case, it's a completely meaningless distinction -- so meaningless, in fact, and so old and boring, that I routinely close any thread in which this question is asked.