Features of Java
Features of Java are :
- Simple
- Object-Oriented
- Portable
- Platform independent
- Secured
- Robust
- Architecture neutral
- Interpreted
- High Performance
- Multi Threaded
- Distributed
- Dynamic
1)Simple :
- Java syntax is based on C++ so easier for programmers to learn it after C++ .
- Java has removed many complicated and rarely-used features like explicit pointers, operator overloading, etc.
- There is no need to remove unreferenced objects because there is an Automatic Garbage Collection in Java.
2)Object-oriented :
- Java is an object-oriented programming language.
- Everything in Java is an object.
- Object-oriented means we organize our software as a combination of different types of objects that incorporates both data and behavior.
3)Platform Independent :
- Java is platform independent because it is different from other languages like C, C++, etc. which are compiled into platform specific machines.
- Java is a write once and run anywhere language.
- Platform : A platform is the hardware or software environment in which a program runs.
- There are two types of platforms :
1)Hardware-based
2)Software-based
- Java provides a software-based platform.
- The Java platform differs from most other platforms in the sense that it is a software-based platform that runs on the top of other hardware-based platforms.
- It has two components:
1. Runtime Environment
2. API(Application Programming Interface)
- Java code can be run on multiple platforms, for example, Windows, Linux, Mac/OS, etc.
- Java code is compiled by the compiler and converted into bytecode.
- This bytecode is a platform-independent code because it can be run on multiple platforms i.e Write Once and Run Anywhere(WORA).
4) Secured:
- No explicit pointer
- Java Programs run inside a virtual machine sandbox.
- Classloader: Classloader in Java is a part of the Java Runtime Environment(JRE) which is used to load Java classes into the Java Virtual Machine dynamically.
- It adds security by separating the package for the classes of the local file system from those that are imported from network sources.
- Bytecode Verifier: It checks the code fragments for illegal code that can violate access right to objects.
- Security Manager: It determines what resources a class can access such as reading and writing to the local disk.
5)Robust (Strong) :
- It uses strong memory management.
- There is a lack of pointers that avoids security problems.
- There is automatic garbage collection in java which runs on the Java Virtual Machine to get rid of objects which are not being used by a Java application anymore.
- There are exception handling and the type checking mechanism in Java.
- All these points make Java robust.
6)Architecture-neutral :
- Java is architecture neutral because there are no implementation dependent features, for example, the size of primitive types is fixed.
- In C programming, int data type occupies 2 bytes of memory for 32-bit architecture and 4 bytes of memory for 64-bit architecture.
- It occupies 4 bytes of memory for both 32 and 64-bit architectures in Java.
7)Portable :
- Java is portable because it facilitates you to carry the Java bytecode to any platform.
- It doesn't require any implementation.
8)High-performance :
- Java is faster than other traditional interpreted programming languages because Java bytecode is "close" to native code.
- It is still a little bit slower than a compiled language (e.g., C++).
- Java is an interpreted language that is why it is slower than compiled languages, e.g. C, C++, etc.
9)Distributed :
- Java is distributed because it facilitates users to create distributed applications in Java.
- RMI and EJB are used for creating distributed applications.
- This feature of Java makes us able to access files by calling the methods from any machine on the internet.
10)Multi-threaded :
- A thread is like a separate program, executing concurrently.
- We can write Java programs that deal with many tasks at once by defining multiple threads.
- The main advantage of multi-threading is that it doesn't occupy memory for each thread.
- It shares a common memory area.
- Threads are important for multi-media, Web applications, etc.
11)Dynamic :
- Java is a dynamic language. It supports dynamic loading of classes.
- It means classes are loaded on demand.
- It also supports functions from its native languages, i.e. C and C++.
- Java supports dynamic compilation and automatic memory management (garbage collection).
Click here to learn : What is Java and its various applications.
Follow Us