Features of Java

The prime focus of java creators was to create a portable and secure programming language, other factors also played an important role in molding the final form of the language. The key considerations were summed up by the Java team in the following list of buzzwords.

  1. Simple
  2. Secure
  3. Portable
  4. Object-oriented
  5. Robust
  6. Multithreaded
  7. Architecture-neutral
  8. Interpreted
  9. High performance
  10. Distributed
  11. Dynamic
Simple

Java was designed to be easy for the programmer. If you have some programming experience, and you already understand the basic concepts of object-oriented programming, learning Java will be a piece of cake for you. Best of all, if you are an experienced C++ programmer, moving to Java will require very little effort. Because Java inherits the C/C++ syntax and many of the object-oriented features of C++.

Secure

Java is best known for its security. With Java, we can develop virus-free systems. Java is secured because.

  1. No explicit pointer
  2. Java Programs run inside a virtual machine sandbox.
  3. 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.
  4. Bytecode Verifier: It checks the code fragments for illegal code that can violate access right to objects.
  5. Security Manager: It determines what resources a class can access such as reading and writing to the local disk.
Object-Oriented

Everything in java is an object except primitive types, such as integers, are kept as high-performance nonobjects.

Portable

Java is portable because of the Bytecode. Bytecode is a highly optimized set of instructions designed to be executed by the Java Virtual Machine (JVM), which is part of the Java Runtime Environment (JRE).

Java is an Independent programming language that follows the logic of “Write once, Run anywhere” i.e. the compiled code can run on all platforms which support java.

Robust

Java is robust because:

  1. It uses strong memory management.
  2. There is a lack of pointers that avoids security problems.
  3. 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.
  4. There are exception handling and the type checking mechanism in Java. All these points make Java robust.
Multithreaded

Java supports multithreaded programming, which allows you to write programs that do many things simultaneously. Java comes with a great solution for multiprocess synchronization that gives you the flexibility to construct smoothly running interactive systems.

Architecture-Neutral

Java is platform-independent and does not depends on OS Architecture. 

Interpreted and High Performance

This Java byte code can be executed on any system that implements the Java Virtual Machine. Java bytecode was carefully designed so that it would be easy to translate directly into native machine code for very high performance by using a just-in-time compiler.

Distributed

Java is designed for the distributed environment of the Internet because it handles TCP/IP protocols. Accessing a resource using a URL is similar to accessing a file. Java also supports Remote Method Invocation (RMI). This feature enables a program to invoke methods across a network.

Dynamic

Java is considered as Dynamic because of Byte code. Source code is written in one platform, that can be executed in any platform. And it also loads the class files at run time. Anything that happens at run time is considered as Dynamic.