Features of Java Language | Why Java Becomes Popular?
In this article, I am going to discuss Java Language Features or why Java Becomes so much popular among developers. Please read our previous article, where we give an overview of Java Programming Language. At the end of this article, you will understand why java becomes the number one choice for developers and the difference between C, C++, and Java.
Why java is so much popular now a day’s?
Java is so much popular now a day’s because of the following reasons.
Java is simple and familiar:
Java is simple because java simplifies the programmer job by avoiding certain features of c and C++. Java avoids explicit memory management. Memory management in java is automatic. It is done by JVM. So there are no chances of memory leakage
There is no pointer in java. Java is familiar because it is modeled on c and C++ language. Java uses many features of C and C++, therefore java codes look like C++ code. We can say java is a simplified version of C++.
Java is portable:
Portability allows the programmer to write the same code for different machines (operating system). Java provides portability in two ways
- Source code portability
- Byte code portability
In java, we can write the source code as well as the byte code in different OS and also get the output. Whereas in the case of C and C++ there is only source code portability.
Java is architecturally neutral:
The behavior of java programs doesn’t change when we move from one system to another which means it will provide the same output in every machine because in java memory layout decisions are not made at compile-time, it is made at run time by JVM.
But in the case of C and C++ programs, the behavior changes when we move the program from one system to another.
Java is secured:
Java is secured because of the two reasons
- There is no pointer in java. Pointer in java is called as restricted pointer means there is no pointer Arithmetic.
- Java programs are executed in a secured environment called JVM. JVM will provide security to the java programs.
Java is robust:
Robust means strong. Java is a strong type checking language having strict type checking during both compilation time and execution time which allows us to develop both error-free applications and programs.
Java is strongly-typed:
The types of the used variables must be pre-defined and conversion to other objects is relatively strict.
Java is distributed:
Java provides a set of APIs which allows user to develop distributed applications. It means java language is used for developing distributed applications whose resources are shared by more than one client.
An application or program whose resources are shared by more than one client is called a distributed application. As java is used for developing such applications so java is a distributed programming language.
Java is multithreaded:
A process is divided into several small parts known as threads or lightweight processes. Sending multiple threads to the processor for processing is known as multi-threading.
Multi-threading means handling multiple tasks simultaneously. For example, we can listen to music while scrolling a page and at the same time we can download an application from the internet on a computer. Java supports multithreaded programming.
Java is dynamic:
Linking of the program is of two types
- Static linking
- Dynamic linking
Static linking: linking of all executable blocks are done before executing programs. If there is a small change in the executable block need to compile the whole program. So here wastage of memory and the efficiency of the whole programs decrease. Example: C and C++.
Dynamic linking: Loading and linking of all executable blocks are done at the time of program execution is called dynamic linking. It increases the efficiency of the program. Any small change in executable block, need not compile the whole program. So there is no wastage of memory e.g java.
The link between the function call and function definition is called binding. There are two types of binding
- Static binding
- Dynamic binding
When a method is invoked, if its method definition which is bind at compilation time by the compiler is only executed by JVM at run time, then it is called compile-time polymorphism or static binding or early binding.
When a method is invoked, the method definition which is bind at compilation time by the compiler is not executed at run time by JVM, instead, it is executed from the subclass based on the object stored in the referenced variable is called run time polymorphism/dynamic binding.
So java is dynamic.
Java is compiled and interpreted:
We know a programming language is either compiled or interpreted. But java combines both the approaches. That’s why java is called a two-stage system.
First java compiler JAVAC translates source code into an intermediate code known as byte code. But codes are not machine instructions. So in the second stage, this byte code is interpreted by the java interpreter (JVM) in java.
As a result machine instruction will be generated which are directly executed by the machine. Hence we are saying java is both interpreted and compiled language.
Java is object-oriented:
Except for the primitive data types, all elements in Java are objects. Object-oriented is not a programming language, it is a programming technique or concept or principle which defines a set of rules and regulations for organizing the data and instructions. The concepts provided by oops are as follows
The programming language supports these four features known as an object-oriented programming language. Java supports these four features so java is object-oriented.
Java is Platform – Independent :
Many languages are compatible with only one platform. Java was specifically designed so that it would run on any computer, regardless if it was running Windows, Linux, Mac, Unix, or any of the other operating systems.
Automatic Memory Management :
Java manages memory allocation and de-allocation for creating new objects. The program does not have direct access to memory. The so-called garbage collector automatically deletes objects to which no active pointer exists.
Java definition based on these features:
Java is just a simple, secure, robust, portable, platform-independent, architectural neutral, multithreaded, object-oriented programming language with strongly type exception handling mechanism for developing distributed, dynamically extensible programs
What is the abbreviation of java?
There is no abbreviation of java. The development team of java just has chosen this name. The name java specifically doesn’t have any meaning rather it refers to the hot, aromatic drink coffee. This is the reason java programming language is a coffee cup.
Difference Between C, C++, and JAVA
|Java is a pure object-oriented language.||C is a procedural language.||C++ is an object-oriented language.|
|We can create our own package in Java.||Cannot create our own package in C.||Cannot create our own package in C++.|
|Internet programming like Frame, Applet is used in Java.||Frame and Applets are not used in C.||Frame and Applets are not used in C++.|
|Java uses Compiler and Interpreter.||C uses only the Compiler.||C++ also uses only the Compiler.|
|Multiple Inheritance is not used in Java. Instead of multiple inheritance Java uses Interfaces.||There is no Inheritance in C.||Multiple Inheritance is used in C++.|
|Java is a platform-independent language.||C is platform dependent.||C++ is also platform dependent.|
|Java doesn’t support any header files.||In C, we use stdio.h header file.||In C++, we use iostream.h and conio.h header files.|
|Java does not support for Pointers.||Pointers are used in C.||Pointers are used in C++.|
|Exception Handling is supported by Java.||There is no Exception Handling in C.||C++ supports Exception Handling.|
|Java is used to develop Android Applications.||C is used in Embedded Programming.||C++ is used in Game Development and System Programming.|
The terminology used on programming language:
- Source code: Developer written program is nothing but the source code. It is written according to the programming language syntax.
- Compiled code: a compiler-generated program that is converted from source code is called compiled code.
- Compiler: it is a translation program that converts the source into machine language at once.
- Interpreter: it is also a translation program that converts source code into machine language but line by line.
- Executable code: OS understandable executable programs (.exe files)
- Compilation: it a process of translating source code into compiled code.
- Execution: it is the process of running the compiled code to get the output.
In the next article, I am going to discuss Java Application Development Lifecycle in detail i.e. I am going to discuss three important concepts i.e. JDK, JVM, and JRE in detail. Here, in this article, I try to explain the Java Language Features and discuss why Java is so much popular among developers nowadays.