Let us briefly look at the history of Java, how it was created and why it became one of the most popular programming languages.
In 1991, Java language was developed by James Gosling, Mike Sheridan, and Patrick Naughton at Sun Microsystems as a part of a research project. This research project was on developing software for electronic devices like TV, VCR.
The features of this language aimed at being easy to understand, portable, efficient.
Gosling named Java as “oak” at the beginning. This name was given after an oak tree that stood outside his office.
It is a high-level programming language based on the object-oriented programming approach.
It aims at the principle of “write once, run anywhere” (WORA). In other words, compiled Java code can run on all platforms supporting Java.
It is used for developing effective programs across different platforms.
Many of the IT organizations prefer Java SE 8 and Java SE 11 version to run their applications.
Java has become one of the most widely used and popular programming languages. The gadgets we use in our day to day lives such as smartphones, smart television, smartwatch are running on the Java platform. Java has touched almost every field including gaming, business solutions, finance areas. Thus, it creates a huge scope for creativity.
Java helps us to interact with electronic devices by providing GUI development, through Abstract Windowing Toolkit (AWT), Swing and JavaFX. AWT provides components such as menu, button, list, and numerous third-party components. Similarly, Swing is a GUI widget toolkit providing advanced components like trees, tables, scroll panes, tabbed panel, and lists. In addition to it, JavaFX is a set of graphics and media packages that help in the scripting of applets and 3d graphics features.
All our smartphones running on Android OS support a large number of applications. Most of these applications are scripted in Java using the Android Software Development Kit (SDK).
Many of the embedded systems such as SIM cards, computers, utility meters, and televisions use embedded Java technologies.
Java supports web applications through JSP and Java Servlet. It handles requests from servers and produces response back to the server. Many government applications for education, health, tourism, financial services, insurance, social security have been using Java.
Apache Tomcat, Simple, Jo!, Rimfaxe Web Server (RWS) and Project Jigsaw are some of the popular web servers based on Java. Java has also marked its presence in commercial application server space with WebLogic, WebSphere, and JBoss EAP.
A widespread platform that provides API and runtime Java Enterprise Edition (Java EE) provides API and runtime environment for scripting and running enterprise software. It also includes and web-services. Therefore, it has become the backbone for a large number of banking applications. For instance, many renowned banks like CITI Bank, UBS Bank have their front end and back end applications running on Java.
Many software developers have chosen Java for developing scientific applications. For instance, MATLAB that is based on scientific calculations and mathematical operations. Above all, Java has become the preferred language because of its features like high efficiency, security, portability, and easy maintenance.
Most of the organizations use Java platform to develop web services which are platform and language independent. Applications developed in another language can easily consume the Java web services. In order to support this feature, Java has provided SOAP and REST based web services. Soap supports XML data format. REST supports JSON and XML formats for data.
Java is easy to learn, easy to understand, easy to read/write. Moreover many predefined classes are present to aid programming.
Java is similar to C/C++.However, drawbacks and complexities of C/C++ like pointers and multiple inheritances are not present in Java.
Java supports all OOP features such as abstraction, encapsulation, inheritance, and polymorphism.
With automatic garbage collection and simple memory management model (no pointers like C/C++), Java is robust . Additionally, with language features like generics, try-with-resources, Java guides programmers toward reliable programming habits for creating highly reliable applications.
Java platform provides a lot of security features like verification mechanism, secure class loading, run-time checking (security manager). Java includes a huge number of Java APIs and tools that provide a secure framework to develop applications.
Java compiler compiles Java source code into optimized byte code. Hence the Java virtual machine (JVM) can execute Java applications at full speed. Java also supports JNI (Java Native Interface) that is useful when an application cannot be entirely written in Java. JNI integrates java code with native applications written in other languages.
The Java platform is designed with supporting the concept of multithreading. That means you can perform multiple tasks at the same time using the same memory and same resources without affecting each other.
The translator compiles the Java code into an intermediate format called byte code. This byte code is extracted into a jar file. Any system having Java virtual machine can execute this byte code. That means you can write a Java program once and run it on any OS: Windows, Mac, Linux or Solaris without the need to re-compile.
Java exhibits automatic memory management through its built-in-garbage collection. It allows us to create numerous classes and objects without having to worry about memory allocation and de-allocation.
Java interpreter (present in JDK) translates the byte code into binary code. It is translated on the fly to native machine instructions and is not stored anywhere. The Java interpreter on the OS produces a binary code that the particular OS understands. That means binary code generated is specific to the OS type. It helps in making the language platform independent.
Java loads the class files at run-time. Java programs also contain an extensive amount of run-time information. This helps us to manipulate, operate, verify and resolve access to objects at run-time. Java is considered more dynamic than C or C++ because of its ability to adapt to an evolving environment.
Java provides Exception Handling. This helps to handle exception cases and maintains the flow of programs.
Is Java fully an object-oriented language?
Use of primitive data types allowed. These are not objects.
Static method call without creating instances allowed.
Now that you have become quite familiar with the features and applications of the language, we will move on to the installation procedures. In the next article, we will discuss different Java editors and steps to set up the Java environment.
I am currently working as a Java developer in WIPRO Technologies, Bangalore, India. I have completed my bachelors in Computer Science Engineering. I have experience in teaching BTech students in private institutions and have written a few technical journals. Wish you all programmers good luck! Hope you enjoy! Happy coding!