What is a Java Virtual Machine, or Java - it is you do not have Java! .. Part 1

What is a Java Virtual Machine, or Java - it is you do not have Java! .. Part 1 What is Java technology

Java technology was created as a tool for programming at Sun Microsystems in 1991 within a small, secret project, code-named Green (Green Project").
"Green Team" of 13 engineers, led by James Gosling (James Gosling) a year and a half years I worked for days on end in an anonymous office on Sand Hill Road in Menlo Park (California, again 1,111,114. 11111115 Silicon Valley. ") Does not informing about his work at Sun.

Engineers "Green Team" were trying to anticipate "new wave" in programming and to prepare for it. Initially they worked from the assumption that one of the main trends would be the convergence of digital consumer devices and computers.
The result of this work was machine-independent programming language, code-named Oak ( Oak ).

To demonstrate how this new language may in future be used in digital devices, "Green Team" has created a home portable interactive controller for digital cable television. But then, this idea was too far ahead, and digital cable television was not ready for the leap that technology offered Java.

However, the innovation of Java technology was in demand for the Internet, and the first official presentation of the Java technology in 1995, the team was able to announce that Java technology will be used in Internet Explorer, Netscape Navigator.

Now, the Java platform has over 4 million software developers. It is used in all major areas of activity around the world and is used in a variety of devices, computers and networks of any programming technology.

In general, the universality, effectiveness, safety and compatibility with different platforms make Java technology an ideal tool for networking. So today it is used by more than 2.5 billion devices, including:
more than 700 million PCs;
More than 1 billion mobile phones and other portable devices;
1,25 billion smart cards;
as well as set-top boxes, printers, web cams, games, car navigation systems, gaming machines, medical devices, parking payment stations, etc.
Currently you can find Java technology in networks and devices - from the Internet and supercomputers to laptops and mobile phones, from Wall Street market simulators to home game consoles and credit cards.

Why Software Developers Choose Java technology
The Java programming language has been thoroughly refined, extended, tested and proven by over 4 million software developers.
Mature, extremely robust and versatile Java technology is invaluable to software developers because it allows them to:
Write software on one platform and run it on practically any other;
Create programs to run in Web browsers and Web Services;
Develop server-side applications for online forums, stores, polls, processing HTML-forms, etc.;
create the most adapted to the requirements of user applications and services, combining various Java-ins;
Write powerful and efficient applications for mobile phones, remote processors, low-cost consumer goods, and virtually all digital devices.

What is a Java Virtual Machine
Java Virtual Machine (Java VM, JVM) - Virtual Machine Java - the main part of the runtime system of Java, called Java Runtime Environment (JRE). Java virtual machine interprets and executes byte-code Java, previously created from source Java-program compiler Java.

In 1996, Sun released the first version of the document "Blue Book JVM, which describes the specification of the virtual machine Java, which has become the de facto industry standard platform Java. This document was an alternative implementation of the JVM, is "to develop from scratch" (born clean room design). As an example, Kaffe .
Starting with version J2SE 5.0 changes to the JVM specifications are developed in accordance with formalized the wishes of the stakeholders. The process of amending the specification of JVM is Java Community Process .

Brief Java-terminology
Virtual Machine (Virtual machine) - an abstract computing device, which can be implemented in different ways: hardware and software. Compiling a set of instructions the virtual machine is almost the same as compiling a set of instructions the microprocessor.

Java-platform (Java Platform) - Java Virtual Machine and standard classes are Java-platform. Java-platform program provides a unified interface regardless of the operating system on which they work.

Java Remote Method Invocation (JRMI) - interface the remote method invocation. Distributed Object Model, which determines how calls the remote method, working on another virtual machine, Java.

Java Runtime Environment (JRE) - runtime Java. A subset of Java Development Kit, designed for end users. JRE consists of the virtual machine Java (JVM), the standard Java classes and supporting files.

Java Virtual Machine (JVM) - Virtual Machine Java, part of the runtime Java, performs the interpretation of Java byte code. Java Virtual Machine instruction set is specified by the byte-code, a set of registers, stack, garbage collection and storage space methods.

Java byte-code (Java bytecode) - machine-independent code, which generates the Java-compiler. Byte-code running Java-interpreter. Java Virtual Machine is fully stack: There's no complicated addressing memory cells and a large number of registers. Therefore, the team JVM short, most of them has a length of 1 byte, making the team called JVM byte-code (bytecodes), although there are teams of length 2 and 3 bytes (the average length of the command byte is 1,8).
A program written in Java, the compiler translates into byte code. Byte-code is written in one or more files can be stored in external memory or transmitted over the network. This is particularly useful due to small file size with byte-code. The resulting compilation of byte code can run on any computer system that implements the JVM (in not depending on any particular processor architecture and PC). This principle is implemented Java: Write once, run anywhere - once wrote, performed anywhere.