The growth of the Internet and the World Wide Web fundamentally restructured computing technology and systems. Today, nearly all computers are connected to the Internet. At starting stages The Internet was mainly used to share files and information. But today it is as vast distributed computing system. Many tools and technologies enabled this fast growth of network and Java is one of the prominent ones.
Surprisingly primary motivation to Java is not internet, it is platform independent programming language. In 1990 it is born from the problem to have a platform independent programming language which can be embedded in various electronic devices, such as toasters, microwave and remote controls etc. As you know many different types of CPUs are used in these devices. But at that time most computer languages were designed to compile for specific target such as C and C++. To overcome from this problem James Gosling and others worked on a portable, cross-platform language that could generate code that would run on a different CPUs under different environments. This project initially called as Green Project by Sun Micro-systems. This work finally led to the creation of Java.
What was once a low-priority problem had become a high priority problem. After some time it became clear to Java design team that the problems of portability generally occur when writing code for embedded systems are also found when trying to develop code for the Web. This understanding results in Java focus shift from embedded systems to web programming. It was the web that finally brought Java to this stage.
Java language initially called as Oak. But James gosling and their team members were consuming a lot of coffee while developing this language. They felt that they were able to develop a better language because of good quality of coffee. So the coffee had its own role in developing this language coffee symbol used to logo for this language and this language is called Java.
There are many java versions that has been released. Current stable release of Java is Java SE 8.
Although the fundamental powers that required the invention of Java are portability and security, other factors played an important role in developing the final form of the language. The key thoughts were summed up by the Java design team in the following list of buzzwords.
Java is one of the simple programming languages because it is easy to learn and use Java minimum knowledge of object oriented programming concepts.
Object-oriented programming (OOPs) is a methodology that simplify software development and maintenance by providing some rules.
Basic concepts of OOPs are:
Java is a WORA (Write Once and Run Anywhere) type language. It means write a Java program once and run on any platform such as Windows, Linux, Sun Solaris, and Mac/OS etc. Java code is compiled by the compiler and converted into byte code. This byte code is a platform / architecture independent code.
Security is one of the principle in information technology used for protecting the confidential information from unauthorized users. Java programming language provides security application programming interface by default so to include in security in any Java code is easy.
Robust simply means strong. Java uses strong memory management. Java provides automatic garbage collection. There is exception handling and type checking mechanism in Java. All these points makes Java robust.
Java Byte code can be supported on any platform which has Java run time environment installed.
Until James Gosling demonstrated an animation by using Java applet programming which are dynamically interacting, only static text used to be displayed in the browser.
Java program compiled to generate the byte code. This code can be interpreted by the interpreter in JVM (Java virtual machine).
Java has interpreter inside the JVM, the problem with interpreter is slow so Java program used to run slow. To overcome this problem, along with the interpreter Java development team have introduced JIT (Just in Time) Compiler enhances the speed of execution.
A thread is a separate piece program, executing in parallel. Java provides mechanism to create threads and run them.
We can create distributed applications in Java. RMI (Remote Method Invocation) and EJB (Enterprise Java Beans) are used for creating distributed applications.