In realworld applications whenever we develop any project in any of the language, it is mandatory for the programmers to write security programs.
As on today non-java programmers programmatically has to develop security programs by implementing the alogrithms of network security which is a complex process. It indicates other than Java programming language, there are no readily available security programes.
In Java programming SUN Micro system has provided the complete Implementation for all the algorithms of the network security and provided in Java API.
Java contains readily available security programs. Hence, SUN Microsystem has populated Java is one of the highly secured language
- waste of memory space
- loss of data
- overlapping of existing data
In any programming language we have 2 types of memory allocations.
- Static Memory allocation
- Dynamic Memory allocation
A Static memory allocation is one in which memory will be allocated at compile time. Because of static memory allocation we get the following disadvantages.
- Waste of memory space[ no of values we entered at runtime are less than the size of the array]
- Loss of data [ no of values we entered at runtime are more than the size of the array]
- Overllapping of existing data.
To eliminate the above drawbacks we use dynamic memory allocation technique.
A dynamic memory alocation technique is one which memory will be allocated at runtime.
Java programming never follows static memory allocation but it will always follows dynamic memory allocation by using ‘new’ operator.
‘New’ operator is known as dynamic memory allocation operator.
Therefore, based on the memory allocation, SUN Microsystem has populated JAVA is one of the dynamic programming language.
In the programming languages like C, C++, PASCAL etc there is no facility for addressing runtime errors. Hence, C, C++, PASCAL, COBOL etc languages are treated as weak programming languages.
The language Java contains a distinct facility called exception handling, which will address runtime errors effectively.
Hence, Java language is populated as one of the strong programming language.
Compile-time errors are those which are listed/resulted provided the programmer is not following syntaxes of the language.
Runtime errors are those which are listed/resulted when the normal user enters invalid input.
In the earlier version of Java, Compilation phase is very fast and implementation phase is very slow. This is one of the complaint received by SUN Microsystem from the Industry experts.
To speed up the Interpretation phase, SUN Microsystem has developed a program called JIT ( Just in Time compiler and added as a part of JVM)
In the current versions of the JAVA, Interpretation phase is so faster than compilation phase. Hence, SUN Micro system has populated Java is one of the Highly interpreted programming language compared to all the programming languages available in the Realworld.
JIT is the program developed by SUN micro system and added as a part of the JVM to speedup the Interpretation phase by reading the entire section of the bytecode and converting into native understanding form of OS.
High Performance (Because Java is “Simple”)
Java is one of the high performance programming language because of the following points.
- Magic of bytecode
- automatic memory management ( Garbage collector program)
- Java programming environment is totally free from a complex concept called pointers. So that performance of the Java programmers is improved.
Software Engineer — Java
- Centralised Application
- Distributed Application
According to the Industry standards, Java applications classifed into 2 types.
They are :
- Centralised Application
- Distributed Application
Centralised Applications are those which are running in the context of single server and whose results are sharable across the Globe.
The diagrammatic representation of Centralised Application is shown below.
C1 C2 C3 ….. Cn
This centralised and Distributed library’s are available only in J2EE and not in J2SE. All the centralised application accessed by authorised people but not all the Real world users. All the centralised application will have private URL but not public URL.
The basic limitation of centralised application is that once the server is down, clients are unable to communicate with the server unless and until server is uploaded again.
In otherwords centralised applications always gives less availability of data.
A distributed application is one which is running in the context of multiple servers and whose results can be accessed across the globe.
In Realworld development process for centralised application and distributed application is same but the way which they are running are quite different. And Java library contains perfect features for development of centralised and distributed applications.
Collection of Interconnected non-autonomous/autonomous computers connected with a server is known as Network.
The basic aim of networking is that to share the data between multiple machines which are located either in same network or in different network.
According to Industry standards, networks are classified into two types.
- Untrusted Network
- Trusted Network
An Untrusted network is one which there exists “collection of Interconnected non-autonomus computers connected with Server”.
Using this network architecture one can develop the Intranet applications by making use of library of (network programming – java.net.*)
Untrusted network architecture prefered by those organizations whose business operations are restricted to certain place.
A Trusted network one can develop internet applications by making use of J2EE technologies (servlets, JSP, EJB, etc)
This architecture prefered by those organizations whose business operations spread across the globe.
Hence, the libraries of J2SE and J2EE makes us to develop the networking applications like Intranet applications and internet applications respectively.
So that JAVA is one of the Networked programmed language.
A portable application is one which will run on every operating system and on every processor without considering their architectures and vendors.
The languages like C, C++, PASCAL, COBOL etc related applications are treated as non-portable applications. Because they never run when OS is different and processor is different.
The language like JAVA and whose related applications are treated as portable because they run on every OS and on every processor without considering their architectures and vendors.
According to Sun Micro systems:
PORTABILITY = PLOTFORM INDEPENDENT + ARCHITECTURAL NEUTRAL
The industries always recommended to develop the distributed applications by making use of portable languages but not by nonportable languages.
Java is Architectural Neutral:
1. An architectural neutral application is one which is running on every available processor without considering architecture of the processor and vendors of the processors
2. In order to say a language or technology is said to be architectural neutral, it has to satisfy the following property.
The language or technology must have some special internal programs which will convert the factors of one processor to another factors of other processor.
The languages like C, C++, PASCAL, COBOL etc and their applications are treated as architectural dependent. Because these languages doesn’t contain any special programs which will convert from the factors of one processor to the factors of another processor.
The language like Java and whose applications are treated as architectural neutral because the software of Java contains some special internal programes which will convert from the factors of one processor to the factors of another processor.
The basic aim of SUN micro system is that the JAVA progammer must be free from hardware and software benchmarks. The slogan of SUN microsystems is WORA ( Write once run/reuse anywhere)
Platform Independent, But How ?
Define: A language or technology related applications are said to be platform independent if and only if that applications must run on every operating system without considering their architectures and vendors.
In order to say particular language or Technology is said to be platform Independent, it has to satisfy the following properties:
- The language or technology related datatypes must take same amount of memory space on every operating system.
- The language or technology must contain some internal powerful programs which will convert from one native understanding form of One OS to another native understading form of other OS.
The languages like C, C++, PASCAL, COBOL, etc applications are treated as platform dependent because,
- the datatypes of C, C++, PASCAL, COBOL etc will take different memory spaces on different operating systems.
- C, C++, PASCAL, COBOL etc languages doesnot contain any special programs for converting one format of one OS to another format of other OS.
The language like JAVA and Whose related applications are treated as platform independet because:
- The datatypes of Java takes same amount of memory space on all available operating systems.
- The software of Java contains some special internal programs which will convert one format of one OS to another format of other OS
The native understanding format of DOS OS is MOZARTS and the native understanding format of UNIX is EMBEDDED LINKING FORMAT (ELF)