Platform Independent
The concept of
Write-once-run-anywhere (known as the Platform independent) is one of the
important key feature of java language that makes java as the most powerful
language. Not even a single language is idle to this feature but java is more
closer to this feature. The programs written on one platform can run on any
platform provided the platform must have the JVM.
Simple
There are various
features that makes the java as a simple language. Programs are easy to write
and debug because java does not use the pointers explicitly. It is much harder
to write the java programs that can crash the system but we can not say about
the other programming languages. Java provides the bug free system due to the
strong memory management. It also has the automatic memory allocation and
deal location system.
Object Oriented
To be an Object Oriented
language, any language must follow at least the four characteristics.
As the languages like Objective C, C++ fulfills the above four characteristics yet they are not fully object oriented languages because they are structured as well as object oriented languages. But in case of java, it is a fully Object Oriented language because object is at the outer most level of data structure in java. No stand alone methods, constants, and variables are there in java. Everything in java is object even the primitive data types can also be converted into object by using the wrapper class.
Robust
Java has the strong
memory allocation and automatic garbage collection mechanism. It provides the
powerful exception handling and type checking mechanism as compare to other
programming languages. Compiler checks the program whether there any error and
interpreter checks any run time error and makes the system secure from crash.
All of the above features makes the java language robust.
Distributed
The widely used
protocols like HTTP and FTP are developed in java. Internet programmers can
call functions on these protocols and can get access the files from any remote
machine on the internet rather than writing codes on their local system.
Portable
The feature
Write-once-run-anywhere makes the java language portable provided that
the system must have interpreter for the JVM. Java also have the standard data
size irrespective of operating system or the processor. These features makes
the java as a portable language.
Dynamic
While executing the java
program the user can get the required files dynamically from a local drive or
from a computer thousands of miles away from the user just by connecting with
the Internet.
Secure
Java does not use memory
pointers explicitly. All the programs in java are run under an area known as
the sand box. Security manager determines the accessibility options of a class
like reading and writing a file to the local disk. Java uses the public key encryption
system to allow the java applications to transmit over the internet in the
secure encrypted form. The byte code Verifier checks the classes after
loading.
Performance
Java uses native code
usage, and lightweight process called threads. In the beginning
interpretation of byte code resulted the performance slow but the advance version
of JVM uses the adaptive and just in time compilation technique that improves
the performance.
Multithreaded
As we all know several features of Java like Secure, Robust, Portable, dynamic
etc; you will be more delighted to know another feature of Java which is Multithreaded.
Java is also a
Multithreaded programming language. Multithreading means a single program
having different threads executing independently at the same time. Multiple
threads execute instructions according to the program code in a process or a
program. Multithreading works the similar way as multiple processes run on one
computer.
Multithreading programming is a very interesting concept in Java. In multithreaded
programs not even a single thread disturbs the execution of other thread.
Threads are obtained from the pool of available ready to run threads and they
run on the system CPUs. This is how Multithreading works in Java which you will
soon come to know in details in later chapters.
Interpreted
We all know that Java is
an interpreted language as well. With an interpreted language such as Java,
programs run directly from the source code.
The interpreter program reads the source code and translates it on the fly into
computations. Thus, Java as an interpreted language depends on an interpreter
program.
The versatility of being platform independent makes Java to outshine from other languages. The
source code to be written and distributed is platform independent.
Another advantage of Java as an interpreted language is its error debugging
quality. Due to this any error occurring in the program gets traced. This is
how it is different to work with Java.
Architecture Neutral
The term architectural
neutral seems to be weird, but yes Java is an architectural neutral language as
well. The growing popularity of networks makes developers think distributed. In
the world of network it is essential that the applications must be able to
migrate easily to different computer systems. Not only to computer systems but
to a wide variety of hardware architecture and Operating system architectures
as well. The Java compiler does this by generating byte code
instructions, to be easily interpreted on any machine and to be easily
translated into native machine code on the fly.The compiler generates an architecture-neutral
object file format to enable a Java application to execute anywhere on the
network and then the compiled code is executed on many processors, given the presence
of the Java run time system.Hence Java was designed
to support applications on network. This feature of Java has thrived the
programming language.