Java is a programming language from Sun Microsystems. Java is the general term used to denote the software and its components, which include 'Java Runtime Environment' (JRE), and 'Java Virtual Machine' (JVM).
Java is intended to be a universal programming language for all platforms. The source is compiled into pseudocode (called Java Bytecode) and an interpreter is then written to run it on the target platform. The pseudocode is zipped together into a package and is given a .jar extension. There is a run time package (interpreter) available for each target machine.
In theory the programmer need not worry about the target platform when writing the original code. In practice a full desktop computer can use this model but mobile platforms usually support a subset of the full functionality. Thus standards like MIDP have been developed. Waba is another run time and development project for small portable low powered units. Java Platform, Micro Edition (Java ME, formerly J2ME), is the Java platform for consumer and embedded devices, such as mobile phones, PDAs, TV set-top boxes, and a whole range of other mobile and wireless devices. Java ME is like the Sun Java Runtime Environment (JRE) in that Java ME is built following a standard set of Java platform guidelines, and is developed with the help of leading mobile manufacturers and wireless service providers.
Java ME, now called MIDP, is the kind of platform that delivers new application power and cutting edge wireless connection benefits to your cellular phone or PDA when you need it. Java ME is now inside millions of devices, and is today's platform of choice for developing consumer tools and features found on cell phones and PDAs everywhere.
 Java 11
The release of Java 11 in September, 2018, introduced major new features, such as nest-based access controls, which eliminate the need for compilers to insert bridge methods; dynamic class-file constraints; the new HttpClient, which removes the need for an external dependency when writing applications to communicate with web services; and the adoption of the Unicode 10 standard for localization. As Ben Evans, coauthor of "Optimizing Java" and "Java in a Nutshell," explains, “Java has adapted well to new frontiers such as cloud and microservices. Java 8 had problems with microservice startup times, but Java 11 solves that problem. It’s a much better environment for developing new microservice applications from scratch.”
Looking ahead to future versions of Java, Evans says that bringing value types to Java is a major current project. Value types are intended to be a third form of data type (to complement the existing primitive types and object references), which Evans sees as one way to future-proof the JVM, calling it one of the major changes to the language that “will change the character of Java development in fundamental ways.”
- Applet: In general, an applet is a software component that performs a narrow function within another program environment, such as a web browser. Java applets provide interactive features in a web browser using a Java Virtual Machine (JVM).
- JRE (Java Runtime environment): It is an implementation of the Java Virtual Machine* which actually executes Java programs.
- Java Runtime Environment (JRE) Cache: A storage area within the Java console, which must sometimes be cleared manually in order to allow the latest Java version to load and install.
- Java Virtual Machine (JVM): In Java, a set of software programs that enable the execution of instructions – usually written in Java bytecode. JVMs are available for all the most common hardware and software platforms.
- JAR: Java software bytecode programs usually have a .jar extension and are compressed using ZIP.
- JDK (Java Development Toolkit): It is a bundle of software that you can use to develop Java based applications.
- JIT (Just in Time): It is a term applied to the compiler that compiles the source on the fly as it is needed.
- JAD is a text base installation file that tells the Java Virtual Machine (JVM) on your phone the name of the executable (JAR) to download and install on your machine.
- The Mobile Information Device Profile (MIDP) is a key element of the Java Platform, Mobile Edition (Java ME, formerly called J2ME)