Java (java, Java, frog toad) is an object-oriented programming language developed by Sun Microsystems since 1991 and officially released on May 23, 1995. The language was developed for programming consumer electronics, but later it was used to write applets, applications and server software.
Java programs can be translated into a special bytecode that runs on the Java Virtual Machine (JVM), a program that processes the byte code and sends instructions to the hardware as an interpreter, but with the difference that the byte code, unlike the text, is processed much faster.
The advantage of this way of executing programs is the complete independence of the bytecode from the OS and hardware, which allows you to run Java applications on any device that supports the virtual machine. Another important feature of Java technology is a very flexible security system, due to the fact that the execution of the program is completely controlled by the virtual machine. Any operations that exceed the program’s installed permissions (for example, attempting unauthorized access to data or connecting to another computer) cause an immediate interruption. This allows users to easily download programs written in Java to their computers (or other devices, such as mobile phones) from unknown sources, without fear of infection by viruses, loss of valuable information, etc.
The disadvantage is the fact that processing byte code takes more time and system resources than the execution of the finished program. To eliminate this drawback, JITs technology (Just-In-Time compilers) is widely used that allows to translate bytecode into machine code during program execution with the ability to save class versions in the machine code, as well as hardware providing for faster processing of bytecode (for example Jazelle technology, supported by some ARM processors).
Inside Java, there are 3 main platforms:
- J2ME – Java 2 Mobile Edition, for use in home appliances;
- J2SE – Java 2 Standard Editon, for standard programs;
- J2EE – Java 2 Enterprise Editon, to create server-level enterprise-level provisioning.
Currently J2EE is the most convenient means for developing enterprise-level server support.
The former version of Microsoft’s JVM (similar to SUN JVM v.1.1.3) largely deviates from the language standards proposed by Sun Microsystems, with the goal of proprietary support for the Windows platform. Subsequently, this was the reason for lawsuits from Sun Microsystems to Microsoft. At present, agreements have been reached between the two companies, up to the removal of mutual claims and mutual cross-licensing of technologies. The version of Microsoft will support the specification MS-J # corresponding to the specification of SUN-JVM J2SE.