Java is a programming language and computing platform first released by Sun Microsystems in 1995. It has evolved from humble beginnings to power a large share of today’s digital world, by providing the reliable platform upon which many services and applications are built. New, innovative products and digital services designed for the future continue to rely on Java, as well.
Key features, properties and qualities of Java include:
- Concurrent: Java gives you the ability to run several programs, or part of a program at the same time, improving efficiency
- Class-based and object-oriented: Allows grouping of objects that can be used across projects, saving you time
- Portable: Java runs on a "write once, use anywhere" principle, meaning that once you have written code it can be used on other projects, rather than starting from scratch
- Secure: Once created, all Java code is converted to bytecode, which cannot be read by humans, protecting your work from untrusted sources and viruses
An enormous amount of applications and websites use java and will not work unless you have Java installed. Denying yourself Java is essentially denying yourself access to technological infrastructure.
From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is a go-to language. Some common uses of Java are listed below:
- 97% of Enterprise Desktops run Java.
- 89% of Desktops (or Computers) in the U.S. run Java.
- 9 Million Java Developers exist worldwide.
- 3 billion mobile phones run Java.
- There are currently over 5 billion Java Cards in use.
- 125 million TV devices run Java.
- 5 of the Top 5 Original Equipment Manufacturers Ship Java ME
Java has become invaluable to developers by enabling them to:
- Write software on one platform and run it on virtually any other platform.
- Create programs that can run within a web browser and access available web services.
- Develop server-side applications for online forums, stores, polls, HTML forms processing, and more.
- Combine applications or services using the Java language to create highly customized applications or services.
- Write powerful and efficient applications for mobile phones, remote processors, microcontrollers, wireless modules, sensors, gateways, consumer products, and practically any other electronic device.
In the beginning version of Java1.0, we don’t have editions because in the initial version Java didn’t support server-side web programming and enterprise applications development. It was only supporting standalone applications and applets (client-side web programming development). In the beginning version even it didn’t support database interaction applications (JDBC).
In the next version, in Java1.1 it starts supporting DIA (Dedicated Internet Acess) development. From Java1.2 version onwards by using the technology servlet and JSP, the server-side programming support was also added. At that time, Java was supporting all three flavors of application development ( mobile, desktop, and internet applications). SUN decided to divide Java concepts into three parts for easy maintenance and development. From Java1.2 onwards Java had three editions:-
All Java platforms consist of a Java Virtual Machine (VM) and an application programming interface (API). The Java Virtual Machine is a program, for a particular hardware and software platform, that runs Java technology applications. An API is a collection of software components that you can use to create other software components or applications. Each Java platform provides a virtual machine and an API, and this allows applications written for that platform to run on any compatible system with all the advantages of the Java programming language: platform-independence, power, stability, ease-of-development, and security.
There are four platforms of the Java programming language:
The Java Standard Edition (Java SE) is the minimum requirement to run a Java application. This edition provides a solid basis to the Java Enterprise Edition, and as such I will start by defining some of its components:
The Java Virtual Machine (JVM) is responsible for supporting the execution of Java applications. This is the piece of the platform that makes the statement write once, run everywhere true for Java. Each particular host operating system(Windows, Linux,Mac OS, etc) needs its own implementation of the JVM, otherwise it wouldn't be possible to run Java applications.
The Java Class Library is a set of standard libraries that is available to any application running on the JVM. This set of libraries is composed of classes that allow programs to handle commons tasks like: network communication, collection manipulation, file operations, user interface creation, etc. This standard library is also known as the Java Standard Edition API.
is a set of tools that provide an environment where Java applications can run effectively. Whenever a user wants to run a Java program, they must choose a vendor and install one of the versions available for their specific environment architecture (Linux x86, Linux x64, Mac OS X, Windows x64, etc). Installing it gives them access to a set of files and programs.
The Java Development Kit (JDK) is an extension of the JRE. Alongside with the files and tools provided by the JRE, the JDK includes compilers and tools (like JavaDoc, and Java Debugger) to create Java programs. For this reason, whenever one wants to develop a Java application, they need to install a JDK.
As already stated, Java EE comes with a lot (more than 40) features based on JSRs. These features help companies to handle common needs like persistence, security, web interfaces, state validation and so on. The following list enumerates some of the most important and used features of Java EE:
- Java Persistence API (JPA)—a specification for accessing, persisting and managing data between Java objects and a relational database
- JavaServer Faces (JSF)—a specification for building component-based user interfaces for web applications
- JavaServer Pages (JSP)—a technology that helps software developers create dynamically generated web pages based on HTML
- Java API for RESTful Web Services (JAX-RS)—a spec that provides support in creating RESTful web services
- Enterprise Java Beans (EJB)—a specification for developing components that encapsulates business logic of an application
- Context and Dependency Inject (CDI)—a technology that allows developers to apply inversion of control on Java applications
It has concepts to develop software for consumer electronic devices means embedded systems, like mobile and electronic level applications. Java ME was popular for developing mobile gaming applications. This edition was called micro because these edition programs are embedded in small chips. The program embedded in the chip is called micro (small).