java tutorial - Features of Java - java programming - learn java - java basics - java for beginners
Learn Java - Java tutorial - features of java - Java examples - Java programs
- The features are given by,
- Simple
- Object-Oriented
- Portable
- Platform independent
- Secured
- Robust
- Architecture neutral
- Dynamic
- Interpreted
- High Performance
- Multithreaded
- Distributed
Simple
- According to Sun, Java language is simple because:
- Java syntax is based on C++ (so easier for programmers to learn it after C++).
- Java removed many confusing and/or rarely-used features e.g., explicit pointers, operator overloading etc.
- No need to remove unreferenced objects because there is Automatic Garbage Collection in java.
Object-oriented
- Object-oriented programming (OOP) refers to a type of computer programming (software design) in which programmers define not only the data type of a data structure, but also the types of operations (functions) that can be applied to the data structure.
- Basic concepts of OOPs,
- Object
- Class
- Inheritance
- Polymorphism
- Abstraction
- Encapsulation
Learn Java - Java tutorial - oop - Java examples - Java programs
Platform Independent
- A platform is the hardware or software environment in which a program runs. There are two types of platforms one is software-based another one is hardware-based. 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:
- Runtime Environment
- API(Application Programming Interface)
- The Java code can be running on multiple platforms like Windows, Linux, Sun Solaris, and Mac/OS and so on.
- This code is compiled by the compiler and then converted it into a bytecode.
- This bytecode is platform-independent code since it can be running on multiple platforms i.e. Write Once and Run Anywhere (WORA).
Learn Java - Java tutorial - platform independent in java - Java examples - Java programs
Learn Java - Java tutorial - platform independent java - Java examples - Java programs
Secured
- Java is secured because,
- No explicit pointer
- Java Programs run within virtual machine sandbox
- Classloader: it includes security by isolating the package for the classes of the local file system from those are imported from network sources.
- Bytecode Verifier: it checks the code fragments for illegal code that can violate access correct to objects.
- Security Manager: it determines what resources a class can access, for example, reading and writing to the local disk.
- These securities are given by java language. Some security can likewise be given by application developer through SSL, JAAS, and Cryptography and so on.
Learn Java - Java tutorial - java security - Java examples - Java programs
Robust
- Robust simply means strong. Java uses strong memory management. There is lack of pointers that avoids security problem.
- There is automatic garbage collection in java.
- In Java exception handling and type checking mechanism are available. These all make java robust.
Architecture-neutral
- There are no implementation dependent features (e.g. size of primitive types is fixed).
- In C programming, int data type occupies two bytes of memory for 32-bit architecture and four bytes of memory for 64-bit architecture. However in java, it occupies four bytes of memory for both 32 and 64 bit architectures.
Portable
- We may carry the java bytecode to any platform.
High-performance
- The Java programming language is quicker than traditional interpretation whereas the byte code is "close" to local code still slower than compiled language like C++.
Distributed
- You can make distributed applications in java. The RMI and EJB are used for making distributed applications.
- We might access files by calling the methods from several machine on the internet/web.
Multi-threaded
- Thread is similar to a separate program, it executing concurrently. You can write Java codes that deal with lots of tasks at only once by defining multiple threads.
- The most important benefit of multi-threading is, it couldn’t occupies memory for each thread and it shares a common memory area to every thread. Threads are important for multi-media, Web applications and so on.