1) Founder was James Gosling
2) Develop by Sun Microsystems in 1991
3) This language was initially called “Oak”, later renamed as “Java” in 1995
- Basically, there was a need to create a platform-independent language that could be used to create software to be embedded in various consumer electronic devices, such as microwave, remote controls etc.
- Now the trouble at that time with C, C++ was that they were designed to be compiled for a specific target.
- Although it is possible to compile a C++ program, for just about any type of CPU, but to do so requires a full C++ compiler targeted for that CPU and which is expensive and time-consuming to create.
Versions of Java
- JDK 1.0
- JDK 1.1
- J2SE 1.2
- J2SE 1.3
- J2SE 1.4
- J2SE 5.0
- Java SE 6
- Java SE 7
- Java SE 8
- Java 9
Java programming language platforms
- Java FX
- Java ME (Java platform, Micro Edition)
- Java EE (Java Platform, Enterprise Edition)
- Java SE (Java Platform, Standard Edition)
Note: All Java platforms consists of a JVM (Java Virtual Machine) and an Application Programming Interface (API)
- JVM: Is a program for a particular h/w and s/w platform, that runs Java technology applications
- API: An API, in very simple terms, is the definition of what can be done programmatically with a particular application. So API here in Java is a collection of s/w components that you can use to create other s/w applications.
1) Java SE
- When most people think of Java programing language, they think of the Java SE API.
- Java SE API, defines everything from the basic types and objects of Java programming language to high-level classes that are used for networkingm security, database access, GUI development and XML parsing.
NOTE: Java SE comes in two types:-
- JDK (Java Development Kit)- contains Java compiler, JDK allows you to compile and run Java from source code.
- JRE (Java Runtime Environment)- JRE only allows the running of Java Bytecode, source that has already been compiled.
2) Java EE
- Java EE platform is built on top of Java SE platform
- It mainly allows development and running of web applications
3) Java ME
- It provides an API & a small-footprint virtual machine for running Java programming language applications on small devices like mobile phones.
- Java ME API is a subset of Java SE API, along with special class libraries useful for small device application development.
4) Java FX
- Java FX is a platform for creating rich internet applications using a light weight user-interface API.
- Java FX applications use hardware accelerated graphics
Difference between JDK, JRE and JVM
Java Development Kit
JDK contains tools needed to develop Java Program. These tools contain compiler (Javac.exe), Java application launcher (Java.exe), AppletViewer etc.
- Java compiler converts Java code into Bytecode
- Java application launcher opens a JRE, loads the class and invoke its main method
Java Runtime Environment
- JRE contains JVM+ Java package classes (like util, math, lang, awt, swing etc)
- Does not contains any development tools like compiler, debbuger etc.
- For running java programs, JRE is used.
Java Virtual Machine
- When a Java file compiles, its output is not an .EXE file, but a .CLASS file (which consists of Java Bytecodes, which only understandable by JVM)
- So JVM act as an interpreter to convert ByteCode into Executable File
FUNDA: You need JDK, if all you want to write your own programs, and to compile them. For running java programs, JRE is sufficient.