Java,oops and JVM

Java is almost a purely object oriented language.But it is not 100 percent object oriented as languages like small talk. Why? Beacuse Oject oriented languages are purely dependent on objects.But Java also has primitive data types.

Java is platform independent i.e it can run on any operating system from 32 bit onwards.It can be Windows,linux,mac etc.

Java is platform independent only because of JVM and bytecode.When we write a java code we compile it and when we run compiled code it is loaded into JVM,JVM converts into machine code and executes it.When code is compiled we get a .class file and this .class file consists of bytecode.This bytecode is set of instructions and it is something intemediary code that JVM understands.

Java is architecturally neutral i.e is works on any hardware.