Its implementation has been provided by Oracle and other companies. But implementation provider is independent to choose the algorithm. JVMs are available for many hardware and software platforms (i.e. It is a specification that provides runtime environment in which java bytecode can be executed. JVM (Java Virtual Machine) is an abstract machine.