As Java was conceived by James Gosling and his team. The goal of creating Java is a Simple, Secure, platform independent and Portable programming language that could be used with the electronic embedded devices such as Microwave and setup boxes. There are very broad variety of Java Features.
Initially Java could be designed for small scaled businesses but later after development of first release it is able to work with Internet and large scale businesses.
Most of the Concepts and Syntax of Java Programming language comes from C / C++ so if you are already familiar with C or C++ Syntax then it’s easy to you learn the Java Programming language.
Here we are listing important features of Java programming language below:
- Simple
- Secure
- Object-oriented
- Platform Independent
- Portable
- Architectural Neutral
- Dynamic
- Robust
- Distributed
- Multi-threaded
- High Performance
Simple
Java was designed to be easy and very simple for the programmer to learn and understand.
As we already know Java programming language was build on the top of C/ C++ Concepts and Syntax so if you had some knowledge about C/C++ then you can easily start learning the Java.
Also, Java is build on the top of C/C++ but it removed the most Confusing Concepts in Java while implementing. Some of them are Pointers and Operator Overloading i.e. has implementation in C++ but not in Java.
Secure
When comes to Security Java is more secure programming language that uses the Sandbox model in the JVM to run the Java program that restrict explicit pointer uses in the Java Program.
Java uses their own Runtime environment to run Java program called Java Runtime Environment(JRE) i.e. comes with the part of Java Virtual Machine(JVM) and Java runtime environment have null interaction with the System environment to Run Java Program.
Object Oriented
Object oriented programming refers to a programming methodology based on objects, instead of just functions and procedures. These objects are organized into classes, which allow individual objects to be grouped together.
As influenced by its predecessors, Java was not designed to be Source-code Compatible. In java everything is Object except primitive data types such as integers, float etc., that are kept as high performance non-objects.
Below are the basic concepts that combined in to Object oriented language:
- Object
- Classes
- Polymorphism
- Inheritance
- Abstraction
- Encapsulation
Platform Independent
As C/C++ that compile into the Platform Specific Machines, Java is differ from C/C++ in this league.
Java guaranteed and follows the Write Once Run Anywhere (WORA) concept means you can write Java program compile it and convert it into Byte Code i.e. Java Intermediate Code and you can run that Byte Code into any machine.
If you write Java Code into Windows then you can run the same program into Linux as well as MacOS.
It is happens because of Java Program run into JRE i.e. same for all the System.
Portable
Java is a portable because you can write code from one system and you can carry that program into another system and run that program without any further implementation.
Architectural Neutral
In C programming language, int data type occupies 2 byte(16-bit) of memory for 32-bit Architecture OS and 4 byte(32-bit) of memory for 64-bit Architecture OS, hence C is Architectural Dependent Programming language.
While in Java, there is no implementation based on Computer Architecture so for both 32-bit or 64-bit both takes the same memory for int type data in Java i.e. 4 byte(32-bit).
Dynamic
Java is a dynamic programming language because dynamic loading of classes means classes loaded on demand.
Java supports Dynamic memory management(Garbage Collection) and automatic compilation.
Robust
Robustness is in high demand because its use of in multiplatform environment because the program execute in a variety of systems.
Java get ride of the two main causes of Programming languages:
- Memory management: Java uses strong memory management at runtime. There are automatic Garbage Collection that free the memory at the runtime for those object that are not used anymore by Java Application.
- Exception Handling: Java is strictly typed language. It checks your Java code at compile time as well as runtime also. Java provide the support to handle runtime Errors.
Distributed
Java is designed for the distributed environment of the Internet because it handles TCP/IP protocols. In fact accessing a resource using a URL is not much different from accessing a file. Java also supports Remote Method Invocation (RMI). This feature enables a program to invoke methods across a network.
Multi-threaded
Java supports multithreaded programming, which allows you to write programs that do many things simultaneously. The main advantage of Multithread programming is each thread does not occupies their own memory, they share a common memory area. Threading is important for Web and Media applications.
High Performance
For cross platform compatibility java programming language generates a intermediate code called java byte code i.e. clos to native code as C/C++. Java code runs in the environment called Java Virtual Machine that implemented Java Just-In-Time(JIT) Compiler that provides java a high performance to run Java Program at the same speed as C/C++ code runs.
You could find the below post useful for your knowledge:
- History of Java
- Java Programming Language
- Christmas Tree Pattern Program
- Data Structure in Java
- Queue implementation in Java
- Pattern Programs in Java