Java is currently managed by Oracle. It bought sun microsystems in 2010.
Java is an object oriented general purpose computer language developed by Sun Microsystem. Java was originally designed by James Gosling. Sun Microsystem released the first public implementation as Java 1.0 in 1995. The portability is one of the goals of Java design. This means the programs written for Java platform must run similarly on any combination of hardware and operating system with adequate run time support. Java byte code is the instruction set of Java Virtual Machine. Each byte code is composed of one or two bytes which represent the instruction. It is an intermediate code of Java language after compilation instead of getting the machine code directly. These codes are analogous to machine code but they are executed by virtual machine written specially for the host hardware. The end users use the Java Runtime Environment installed on the system for standalone Java applications.
Oracle Corporation owned Java from Sun Microsystem in 2010. Oracle implementation of Java is now available for Windows, Mac OS X, Linux and Solaris. Oracle offers two distribution of Java- 1. Java Runtime Environment 2. JDK Java Runtime Environment contains the part of Java SE platform required to run Java program and is intended for end users. JDK or Java Development Kit is for the software developers which includes development tools like Java compiler, Javadoc, Jar and debugger. OpenJDK is an SE implementation licensed under GNU general public license. The main goal of Java is to make all its implementations Java compatible.
Java is easy to write and read. It has cohesive and concise feature which makes it easy to learn and use. It has almost all features of other programming language like C++.
Java is a platform independent programming language. Java programs can be run on any platform. Java programs can be transferred over internet.
Java is an object oriented programming language. It provides almost all features of C++. Java is pure object oriented while C++ is semi object oriented.
Java provides a secure platform for creating internet applications. It also provides a secure way to access web applications. Moreover Java does not harm other system.
Java provides integrated support for multithreaded programming.
Java is a machine independent programming language. i.e java does not does not depend on hardware.
Java byte codes are highly optimized. Java Virtual Machine can execute them much faster.
Java can be distributed over internet. It supports a distributed environment.
Java is very reliable in comparison to other programming languages. Java puts an effort for checking possible errors as possible as early. Java has a runtime exception handling feature to provide programming support for robustness.
Before the introduction of Just-in time-compilation Java was much slower than C++. But after the introduction of this the performance of Java has increased significantly. Some platforms offer direct hardware support for Java. The microcontrollers can run Java in hardware instead of the software Java Virtual Machine.
Java uses an automatic garbage collector to manage memory in the object lifecycle. The programmer determines when objects are created and Java runtime is responsible for recovering the memory once objects are not in use for a longer time. The garbage collection may happen at any time. Normally it will occur when a program is idle. Java contains multiple types of garbage collectors.
Java applets are the programs that are embedded in other applications, typically in a web page displayed in a web browser.
Java servlet technology provides web developers with a simple, consistent mechanism for extending the functionality of a web server and for accessing existing business systems. Servlets are server side Java EE components that generate responses to request from clients. A servlet can be thought of as an applet that runs on the server side.
Java Server Pages are the server side Java EE components that generate responses typically HTML pages to HTTP requests from clients. Java Server Page embeds Java code in HTML page by using special delimiters < % and % >.
Swing is a graphical user interface library for Java SE platform. It gives a different look and swing to the system.