In Oracle vs. Google, there was an interesting definition of Java.
Generally, Java enable software developers to write programs that can be run on a variety of different types of computer hardware without having to rewrite the programs for each different type of computer hardware or “machine.”
Conventionally, computer programs such as C++ are written in human-readable programming languages. The source code is converted into a machine code which is in a binary language by a compiler or interpreter to be executed. Conventionally, the source code had to be written specifically for the hardware architecture that ultimately would run the machine code. For example, word processing software written for an Apple Mac would not run on an IBM PC, and vice versa.
Jave uses a virtual machine to make software programs more portable. The virtual machine emulates certain hardware such as IBM PC, but can read a Java bytecode, which is a type of code simpler than source code by not as simple as machine code. Thus, the virtual machine can read the Java bytecode regardless of the type of machine because it will translate the bytecode into a machine code compatible with that particular machine.
The Java programming language is in the public domain and anyone was free to use it without charge,
Java was developed by Sun Microsystems, Inc. in the 1990s. Oracle Corporation acquired Sun Microsystems and renamed it Oracle America, Inc. in January 2010. Seven months later, Oracle America filed an action against Google claiming infringement of its patents and copyrighted works related to Java improvements.