I came across the fact, while browsing few technical forums that JAVA is not a purely object oriented language. It says that variables in java are primitives and not objects. The value of a primitives are stored in fields or stack rather than in heap as in case of an object oriented language.
More a case of semantics than anything else. Primitives are stored as their actual value; as fields on the heap, as local variables on a stack. This simplifies the language; you can write "int i = 123;" rather than "Integer i = new Integer(123);" and saves the compiler having to convert 123 from an int to an Integer and back to an int when you use it. There is lots written about "not a real OO language," which I think is mostly nonsense.
This is more suited to the beginning forum then here, but as there have been lots of posts on this search in the beginning forum (and here if you want) and you will find this has been discussed many, many times.
But basically, there is no one, official, agreed upon definition of pure object oriented language, as such any effort discuss this is simply a poor academic exercise without much merit.