Search

Features of Java



Features of java

Here we will learn about some basic Features of Java; Features of a language are nothing but the set of services or facilities provided by the language vendors to the industry programmers.

Java language provides 13 features to the industry programmers to develop various applications they are,
  • Simple 
  • Platform independent 
  • Architectural neutral 
  • Portable 
  • Multi threading 
  • Distributed 
  • Networked 
  • Robust 
  • Dynamic 
  • Secured 
  • High performance 
  • Interpreted 
  • Object Oriented Programming Language 

Simple:

The main is why java is simple; JAVA is simple because of the following factors:
  • JAVA is free from pointers hence we can achieve less development time and less execution time [whenever we write a JAVA program we write without pointers and internally it is converted into the equivalent pointer program]. 
  • Rich set of API (application protocol interface) is available to develop any complex application. 
  • The software JAVA contains a program called garbage collector which is always used to collect unreferenced (unused) memory location for improving performance of a JAVA program. [Garbage collector is the system JAVA program which runs in the background along with regular JAVA program to collect unreferenced memory locations by running at periodical interval of times for improving performance of JAVA applications. 
  • JAVA contains user friendly syntax’s for developing JAVA applications. 

Define byte code and JVM

  • Byte code is the set of optimized instructions generated during compilation phase and it is more powerful than ordinary pointer code. 
  • JVM is set of programs developed by sun microsystem and supplied as a part of jdk for reading line by line line of byte code and it converts into native understanding form of operating system. 
  • Java language is one of the compiled and interpreted programming language. 
(b) memory allocation

Java programming execution environment contain inbuilt garbage collection program for automatic memory management for strength the performance of java / J2EE applications.

Define a garbage collector.Garbage collector is one of the background and system java program which is running internally along with our regular java program for collecting unused / unreferenced memory space for improving the performance of our applications.

Note java programming does not support destructor concept in place of destructors, we have garbage collector program.

Java programming is containing rich set of API (application programming interface)

Define on API


An API is a collection of packages a package is the collection of classes, interfaces and subpackages. A subpackage is a collection of classes interfaces and sub sub packages etc.


(d) java programming is containing user friendly syntaxes so that we can develop effective application s. in other words if any language is providing user friendly syntaxes, we can develop error free applications.
2. Platform Independent

A program or technology is said to be platform independent if and only if which can run on all available operating systems irrespect to of its development and compilation. (platform represents O.S).

The languages like C, Cpp are treated as platform dependent languages since these languages are taking various amount of memory spaces on various operating systems [the operating system dos understands everything in the form of its native format called Mozart (MZ) whereas the operating system Unix understands everything in its negative format called embedded linking format (elf). When we write a C or CPP program on dos operating and if we try to transfer that program to Unix operating system, we are unable to execute since the format of these operating systems are different and more over the C, CPP software does not contain any special programs which converts one format of one operating system to another format of other operating system].

The language like JAVA will have a common data types and the common memory spaces on all operating systems and the JAVA software contains the special programs which converts the format of one operating system to another format of other operating system. Hence JAVA language is treated as platform independent language.

[JAVA language is also treated as server independent language since the server side program can run on any of the server which is available in the real world (web server or application server). JAVA can retrieve or store the data in any one of the data base product which is available in rest world irrespective of their vendors (developers) hence JAVA language is product independent language.

In order to deal with server side program from the client side, we can use C language client program, CPP client program, DOT NET client program, etc. hence JAVA language is a simple, platform independent, server independent, data base/product independent and language independent programming language].

MVC Architecture

3-tier architecture is also known as MVC architecture. M stands for Model (database programming), V stands for View (client side programming, HTML/AWT/APPLET/Swing/JSP) and C stands for Controller (server side programming, Servlets).

Architectural Neutral

Architecture represents processor.

A language or technology is said to be architectural neutral which can run on any available processors in the real world without considering there architecture and vendor(providers) irrespect to its development and compilation. .

A language is said to be architecture neutral it has to satisfy the following properties.
The software must have the special internal programs which will convert the factors of one processor to factor of another processor.
The languages like C, CPP are treated as architectural dependent because the above property is not
satisfied..
The language like JAVA can run on any of the processor irrespective of their vendor
The basic aim of sun micro system is that java applications must run without considering about software benchmarks and hardware benchmarks.
4. Portable

A portable language is one which can run on all operating systems and on all processors without considering their vendors and architectures. The languages like C, CPP, Pascal are treated as non-portable language. If any language supports platform independent and architectural neutral feature known as portable. JAVA is a portable language.

According to SUN microsystem.

Portability = platform independent + architecture neutral

Multi Threading

The aim of multithreading is to achieve the concurrent execution.

A flow of control is known as thread

The purpose of thread is to execute the logic of the java program which is written in the form of user defined method concurrently

If a java program is containing multiple flow of control then it is known as multithreaded program

The languages like c, c++, Pascal, Cobol are treated as single threaded modeling languages because these execution environment contains single flow of control, provides sequential execution, takes more execution time and doesn’t contain any library for development of multithreading application.

The languages/technologies like java and .net are treated as multithreaded modeling language because these execution environments provides multiple flow of control and gives concurrent execution, gives less execution time and contains an effective library for development of multithreading based applications.

Networked

The basic aim of networking is to share the data between multiple machines which are located either in the same network (local sharing) or in different network (global sharing).

Collection of interconnected autonomous or non-autonomous computer with the server is known as networking.

According to industry standards we have two types of networks

1. Un-trusted networks

2. Trusted
Un-Trusted network

An un-trusted network is one in which their exists “collection of interconnected non-autonomous computer with the server”. Un-trusted network is also known as LAN. Using this network architecture, we develop centralized application. A centralized application is one which runs on single server and it can be access in limited graces. In order to develop centralized applications we may use a technology called J2SE and these kinds of application are preferred by small scale organization.

This network architecture preferred by those organizations whose business operations are restricted to a specific place known as small scale organizations.

These organizations prefer to have internet applications to run on un-trusted networks.

To develop the intranet applications we use J2SE (network programming concept).

Trusted network

Trusted network is one in which there exist “collection of interconnected autonomous computers with the server”. Trusted network is also known as WAN. Using this network, we can develop distributed applications. A distributed application is one that runs on multiple servers and it can be access in unlimited graces. In order to develop distributed application we may use a technology called J2EE and these kinds of applications are preferred by large scale organization.

This network architecture preferred by those organizations whose business operations spread across the globe (large scale organization) . These organizations prefer to have internet applications by making use of J2EE technologies.
7. Distributed

According to the industry standards in java real time applications, applications are classified into two types they are,

(a). Centralized applications

(b). Distributed applications
Centralized applications

A centralized application is one which runs in the context of single server and it can be accessible across the glob

Example

All banking software are comes under centralized application

The diagrammatically representation of centralized application is shown below

The basic limitation of centralized application is that once the server is down, clients are unable to communicate unless and until it is uploaded again.
This makes us to understand, centralized applications makes to understand less availability of data.
All the centralized applications in the industry are not containing public URL.

Distributed Applications

Distributed application are those which runs in the context of multiple servers and they can be accessible across internet and intranet applications and they are running untrusted and trusted networks so that industry is treated java is one of the networked programming language.
All the real time websites are comes under distributed applications.
The diagrammatic representation for distributed application is shown below

The basic advantage of distributed application is that, even though one server is down, client are able to communicate with other servers.
This makes us to understand distributed application provides more availability of data.
The negligible limitation of distributed application is that more investment is required for designing of high end server.
Each and every distributed application hava public URL. (e.g www.mail.yahoo.com)

Note if any machine does not have storing and processing capability then that machine is known as non autonomous otherwise it is known as autonomous.

What is the difference between URL and URI ?

The place or address where the application is running is known as URL

The place or address where the application is residing is known as URI
8. Interpreted
In the older version of java compilation phase is so faster than interpretation phase.
Industry has complained to the SUN microsystem saying that compilation phase is very faster and interpretation phase is very slow.
So solve this issue, SUN microsystem has developed a program called JIT (just in time compiler) and added as a part of JVM to speed up the interpretation phase.
In the current version of java interpretation phase is so faster than compilation phase.
Hence java is one of the dighly interpreted programming language.
Define JIT

JIT is the set of programs developed by SUN microsystem and added as a part of JVM, to speed up the interpretation phase by reading the entire section of the by execution and conversion native understanding form of OS.
9.High performance
Java is one of the high performance programming language because of the following reasons.
Because of magic of bytecode (we know that bytecode is the set of optimized instructions generated by the java compiler during compilation phase and it is more faster than ordinary pointer code
Because of magic of garbage collector, automatic memory management is taken care(we know that garbage collector is the one of the system background java program runs along with our regular java program for collecting unused memory space for improving the performance of java application)
Java programming is free from pointers so that a java program can develop an application as easily.
It support multithreading, because of this time consuming process can be reduced to execute the program.
As possible compared to any other language programmers so that performance of the java programmer is improved.
10. Robust (strong)

Java is robust or strong because of its capability to handle run time error of execution very efficiently. In any error is rised at the time of running of a program is known as runtime error or exception, in general these errors are rised for end user.

When we write any program in any programming language, we come across various type of errors.

Broadly errors are classified into two types; they are

(a) Compile time errors

(b) Runtime errors

Compile time errors are those which are resulted during the program compilation when the programmer is not following syntax of the language.

Runtime errors are those which are resulted during program execution when the normal user enters invalid input at runtime.

The language like C, C++, pascal, COBOL are not able to address runtime erroers effectively hence these languages related applications are not robust.

The language like java is able to address the runtime errors effectively by using a concept of exception handling.

Hence the java language related applications are robust.
Definition of Exception

Runtime error of java program is known as exception.

Therefore java is one of the robust language because of the inbuilt facility called exception handling.
Exception handling:

Exception handling is a mechanism used to convert system define error message into end user understandable message.

Secure

Java is more secured language compare to other language, mainly it supports two types of security.

Internal security
External security
Internal security

When-ever security is provided for data at application level is known as internal security. In java it can be achived by oops (object oriented programming structure).
External security

When-ever security is provided for data at external level (outside of application) is known as external security. In java language can be achive using encryption and description technique.. Converting normal text / plain text into cyber text is known as Encryption, converting cyber text into normal text is known as decryption.
12. Dynamic

In most of programming language, memory allocation techniques are divided into two types they are;
(a) Static memory allocation
(b) Dynamic memory allocation
Static memory allocation

A static memory allocation is one in which the memory will be allocated at compile time.

The limitation of static memory allocation are,

Waste of memory space (the number of values we enter at runtime are less than the size of array)
Loss of data (the number of values we enter at runtime are more than the size of the array)
Overlapping of existing data (if any array contains overlapped values and if we try to inser a new value within the existing memory location of the array then we need to move the elements of a array either to downwards or upwards which is quite impossible in arrays so that the new value will be replaced the existing values)

Because of the above limitations, java programming does not follow static memory allocation, but it always follows dynamic memory allocation.
Dynamic memory allocation
The process of allocating the memory space to the input of the program at a runtime is known as dynamic memory allocation,
Dynamic memory allocation eliminates all the drawback of static memory allocation.
In java programming to allocate memory space by dynamically we use an operator called ‘new’ ‘new’ operator is known as dynamic memory allocation operator.



No comments :

Post a Comment