Introduction to JAVA | FEATURES of java

History of JAVA:

JAVA is a distributed technology developed by James Gosling, Patric Naugton, etc., at Sun Micro System has released lot of rules for JAVA and those rules are implemented by JavaSoft Inc, USA (which is the software division of Sun Micro System) in the year 1990. The original name of JAVA is OAK (which is a tree name). In the year 1995, OAK was revised and developed software called JAVA (which is a coffee seed name). 

JAVA released to the market in three categories J2SE (JAVA 2 Standard Edition), J2EE (JAVA 2 Enterprise Edition) and J2ME (JAVA 2 Micro/Mobile Edition). 

i. J2SE is basically used for developing client side applications/programs. 

ii. J2EE is used for developing server side applications/programs. 

iii. J2ME is used for developing server side applications/programs. 

If you exchange the data between client and server programs (J2SE and J2EE), by default JAVA is having on internal support with a protocol called http. J2ME is used for developing mobile applications and lower/system level applications. To develop J2ME applications we must use a protocol called WAP (Wireless Applications Protocol).

FEATURES of java: 

1. Simple 

2. Platform independent 

3. Architectural neutral 

4. Portable 

5. Multi threading 

6. Distributed 

7. Networked 

8. Robust 

9. Dynamic 

10. Secured 

11. High performance 

12. Interpreted 

13. Object Oriented Programming Language  

1. Simple: JAVA is simple because of the following factors: 

i. 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]. 

ii. Rich set of API (application protocol interface) is available to develop any complex application. 

iii. 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. 

iv. JAVA contains user friendly syntax’s for developing JAVA 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. 

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. 

3. Architectural Neutral: 

A language or technology is said to be architectural neutral which can run on any available processors in the real world. The language like C, Cpp are treated as architectural dependent. The language like JAVA can run on any of the processor irrespective of their architecture and vendor. 

4. Portable: 

A portable language is one which can run on all operating systems and on all processors irrespective their architectures and providers. The languages like C, Cpp are treated as non portable languages whereas the language JAVA is called portable language.

5. Multi Threading:

The basic aim of multithreading is to achieve the concurrent execution. A flow of control in java is known as thread. 

The purpose of thread concept is to execute user define method which contains the logic of the java program. 

If any java program contains multiple flow of controls then that java program is known as multithreaded. 

The language like C, C++, Pascal, COBOL etc come under single threaded modelling language because their execution environment contains single flow of control. 

In general single threaded modelling language provides sequential execution but not concurrent execution and they not contain any library for development of multithreaded application. 

The language like Java and .Net are threaded as multithreaded because their execution environment provides and contains multiple flow of controls. 

In Java programming we have the following API for development of multithreading application 



Whenever we write a java program 2 types of threads exist 

1) Fore-ground / child thread. 

2) Back-ground / parent thread. 

“Multitasking concept of java is one of the specialized form of multitasking concept of OS. 

6) Networked: 

To share the data between multiple machines which are located either in same network or in different network, Intranet application will be developed by J2SE with network programming concept. 

7) Distributed: 

According to real world project, java project are classified into 2 types 

    i. Centralized Application. 

    ii. Distributed Application. 

i) Centralized application: Centralized application are those which runs in the context of single server and their result can be accessible across the globe and they are operated by authorized people only. (Banking , insurance ...) 

ii) Distributed application: which runs in the context of multiple servers and result are accessible across the globe and they are operated by both authorized and unauthorized user. 

Note: Centralized application will have private URL. 

Distributed application will have public URL. 

8) High Performance: 

Java is one of the high performance programming language because of the following factors 

i. Automatic memory management due to inbuilt garbage collector. 

ii. Java is free from pointers. 

iii. Due to JIT which enhances the speed of the execution. 

9) Robust: 

The language like Java and .Net are threaded as Robust/Strong programming language because Runtime error are effectively addresses by the concept called Exception Handling. OR java programs will not crash because of its exception handling and its memory management features. 

10) Highly Interpreted: 

In the older version of java (JDK 1.0) compilation phase was very faster 
and interpretation phase was very slow this is one the industry programmer complimented and 
compliant to sun Microsystems.

Sun Microsystems has taken this task as challenging issue and they developed a program 
called JIT and added as part of JVM to speed up the interpretation phase by reading entire section 
of byte code at once.

11) Secure: 

Security is one of the principal in IT world for preventing / protecting the unauthorized 
modification on confidential data. The language like Java and .Net are treated has high secured 
programming language because their API contains readily available security programs in a 
package called javaX.security.*; 

12) Dynamic: 

In any programming language, if we write a program and that program accepts input 
then the input of program is stored in the main memory by allocating sufficient amount of 
memory space.

In any programming language memory allocation can be done in 2 ways 

i. Static Memory Allocation.

ii. Dynamic Memory Allocation.

i) Static Memory Allocation is one in which memory will be allocated for the 
impact of the program at compile time because of static Memory allocation we 
get the following drawbacks

a. Waste of memory space. 
b. Loss of Data.
c. Overlapping of Existing Data.

ii) Dynamic Memory Allocation is one in which memory will be allocated for the 
input of the program at run time .

o Java follows only dynamic memory allocation but not static memory allocation.
o To allocate the memory space dynamically is java programming we use operator called new.

13) Object Oriented Programming:


"introduction to java features of java"

"what is importance of java"

"what is java and its features"

"what is java and its types"

"what is the main purpose of java"

"what are the main features of java"

"explain 5 features of java"

"explain features of java programming"

"what is java and its application"

"what is java introduction"