Java is a programming language which is developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ and has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java is general-purpose, concurrent, class-based, and object-oriented, and is specifically designed to have as few implementation dependencies. Java is considered by many as one of the most influential programming languages of the 20th century, and widely used from application software to web application.
Java 2 was released in December 1998 as J2SE 1.2, new versions had multiple configurations built for different types of platforms. For example, J2EE targeted enterprise applications and the greatly stripped-down version J2ME for mobile applications. J2SE designated the Standard Edition. In 2006, for marketing purposes, Sun renamed new J2 versions as Java EE, Java ME, and Java SE, respectively.
Java platform is the name for a bundle of related programs, or platform, from Sun which allows developing and running programs written in the Java programming language. The platform is not specific to any one processor or operating system.
- Java Card: refers to a technology that allows small Java-based applications (applets) to be run securely on smart cards and similar small memory footprint devices.
- Java ME (Micro Edition): Specifies several different sets of libraries (known as profiles) for devices which are sufficiently limited that supplying the full set of Java libraries would take up unacceptably large amounts of storage.
- Java SE (Standard Edition): For general purpose use on desktop PCs, servers and similar devices.
- Java EE (Enterprise Edition): Java SE plus various APIs useful for multi-tier client server enterprise applications.
Java Platform consists of several programs, each of which provides a distinct portion of its overall capabilities. For example, the Java compiler, which converts Java source code into Java bytecode (an intermediate language for the Java Virtual Machine (JVM)), is provided as part of the Java Development Kit (JDK).
The essential components in the platform are the Java language compiler, the libraries, and the runtime environment in which Java intermediate bytecode "executes" according to the rules laid out in the virtual machine specification.
The Usage of Java
Java is a complete platform for software development and it is suitable for enterprise large scale applications, through different containers. Java is also available for smart devices and smart cards.
- Desktop Applications
- File processing
- Data Access
- Graphics
- Clinet/Server
- Remote Processing
- Web development
- Security
- Unit Testing
- XML
- AJAX
- Web services
- Messaging
- Workflow and BPM
- Service Discovery
- Reporting
- Logging
Other Usage of Java
- Desktop use
According to Sun, the Java Runtime Environment is found on over 700 million PCs. A Java runtime environment is bundled with Apple's Mac OS X, and many Linux distributions include the partially compatible free software package GNU Classpath.
Some Java applications are in fairly widespread desktop use, including the NetBeans and Eclipse integrated development environment, and file sharing clients such as LimeWire and Vuze. Java is also used in the MATLAB mathematics programming environment, both for rendering the user interface and as part of the core system.
- Mobile devices
Java ME has become popular in mobile devices, where it competes with Symbian, BREW, and the .NET Compact Framework. The diversity of mobile phone manufacturers has led to a need for new unified standards so programs can run on phones from different suppliers - MIDP. The first standard was MIDP 1, which assumed a small screen size, no access to audio, and a 32kB program limit. The more recent MIDP 2 allows access to audio, and up to 64kB for the program size. With handset designs improving more rapidly than the standards, some manufacturers relax some limitations in the standards, for example, maximum program size.