Table of Contents
Java, the web-savvy programming language is developed by Sun and the Internet with the intent to create a dynamic, object oriented programming language suitable for use of the same types of development tasks as C and C++, but without the difficulties and sources of bugs common to those languages. This is why Java has been touted as a better C++; it contains all the essential OOP features but with reduced complexities than in C++. Sun describes Java as a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language.
characteristics of Java programming
Object Oriented Programming
Java is an object Oriented Programming (OOP) language. It incorporates almost every OOP features. Object creation through object template i.e. class, data abstraction and encapsulation, data and code sharing through inheritance, overloading concept through polymorphism, and data/process hiding etc. are some basic OOP features in Java, Java is a bit like C++ but more simpler than aristocrat C++. In fact, it is elegant language wherein the poorly understood, erratic, and redundant features of C++ have been eliminated. There are no business of pointers in Java – only lightly bounded heterogeneous collection of data/object. Absence of any kind of pointers means free from huge bugs because pointers manipulation is one of the richest source of bugs in almost all programs. Java is sophisticated enough to help programmers to express complex ideas . Here, global data and stand-alone function are not possible, again, unlike C/C++. The basic programming components in Java is objects which directly or indirectly decedent from the forefathers of classes. The class definition in Java permits both static and dynamic binding and therefore full reuse of code and data sharing. Java is truly Object Oriented Programming in the sense that many class definition can be inherited dynamically. However, Java does not support multiple inheritance whose semantic and usage has been quite controversial. Type casting or operator overloading is also not allowed in Java.
Platform Independent Programming Environment
The microprocessor that is inside every computer can understand and execute only the machine codes i.e. in terms of 0s and 1s. But using high level programming, programmers use source code (English like) and using a translator, code is converted into the machine code relevant to the microprocessor. As the machine codes varies from microprocessor to microprocessor so what we need is that for same source code but for different microprocessor type different translator. Hence, a program (source code) when converted into the machine code for an Intel chip will vary from the version for a Motorola chip, which again will be different from the version for Sun workstation. The same problem exists in case of computers having same microprocessors but different operating systems.
As the Java byte codes are architecture and operating system independent they are highly portable and can be executed on any system without change.
Using the conventional programming languages like C or Pascal, if we need a slice of memory we have to allocate it and then to returns it to the system we are finished with it, Thus, here memory management is solely decided by the programmer. This overhead is eliminated in Java. Here, a program does not need to be malicious to suck up memory and not release it. Java controls all of the memory, Java run time system supports automatic garbage collectors based memory management system. Every once in a while, it will scan through all of the objects in a process to see if any of them are not used. The obsolete objects are reclaimed from the memory. As there no explicit memory manipulation is required by the programmer, so Java programs are highly robust
Another important contribution of Java is the support of multithreading. The multithreading is basically, the ability to run several tasks within the context of one large application. In more simpler version, a program is a list of instructions , and path through list of instructions is often called the thread of execution. In many cases, execution of a program through multiple threads makes more sense. For an example, suppose, a program needs to open a file, draw some thing on the screen, and print out something else. Each of these may require waiting for access to some resource. A multithreaded program can, in effect, start up three different threads of executions for these tasks. If the printing thread is waiting for more paper to be loaded in the printer, then the file thread and drawing thread can continue operating. In Java multithreading interpreter can keep track of all threads and switch among all of them, giving each a fair share of the processor’s attention. For most applications, multithreading improves interactive performance and real time system development. The multithreading encourages Java to interface and support several features of modern operating systems and network protocols.
Security in Java
Java is based on client /sever technology, After the accomplishment of source code into byte code translation, Java programs are in effect down loaded from host machines and then run on one’s client machine. Since Java programs are down loaded from all over the world, some precautions are needed to prevent malafide pieces of code called computer viruses embedded within the programs, causing problems to the recipient system and spreading it around. This therefore demands that distributed applications have to exhibit the highest level of security concerns. A byte code verifier in the Java interpreter looks at the incoming byte codes and verifies whether the compiled code is strictly language compliant, in case it founds illegal code, the run time system rejects the code and refuses to run it; thus trapping all malafide codes. Once the strict verification is over, the application proceeds to run and by this Java impotents security holes if any.
Advantages of Java
Easy Development of Large Applications
Object oriented methodology in Java enables the software system developers to develop large complex applications with a little effort. Experienced software developers understands that software systems are dynamic in nature i.e. in continuous evolution Application can be embedded dynamically. Here, linkage manipulations are deferred until run time. This concept envisages easy to modification and ability to upgrade in the existing system
Simple, Portable, and Robust Programming
Writing Java code is almost English like and is similar to writing codes in other programming languages.
Java programs are portable because they can be executed in any environment without any substantial change. The Java bytecodes are independent of any underlying architecture, characters are uni-code based for internationally portable applications. If one use certain I/O classes, one can render data portable on Java code.
Java programs are robust because there is no need of explicit memory manipulation. Memory address cannot be deferred nor can pointer arithmetic be used to access object contents. Array bounds are checked so that array indices are never out-of-bounds.
High Performance of Java
Already mentioned that execution of programs in Java is a two steps process compile half way and interpret half way. But why an interpreter?
An interpreter reads every line, converts it into machine code of the system and then execute it . Every line of source code has to be converted to machine code every time it executes making the application painfully slow. On the other hand, compiler compiles the entire source code into machine code before starting the execution and speed up the overall process. The only draw backs with the compiler is that an executabel code can work only on one type of system often specific to an operating system. You can not compile code if you have no knowledge of the machine you are compiling it for.
Internet Access Capability
It is well known that marriage of computer and communication gave the birth to today’s information society. After the successful maturity of ARPANET (Advanced Research Projects Agency Network), now Internet is a rapidly evolving network of networks, which essentially consists of very powerful computing systems with a variety of capabilities through a high speed (even with the speed of light) and large band width communication channels.
What is Advance Java?
The dictionary meaning of advance is a forward movement or a development or improvement and the meaning of improve means thing that makes something better. All in all, we have to improve our basic knowledge to master in that particular field.
Java is divided into two parts i.e. Core Java (J2SE) and Advanced Java (JEE). The core Java part covers the fundamentals (data types, functions, operators, loops, thread, exception handling, etc.) of the Java programming language. It is used to develop general purpose applications. Whereas Advanced Java covers the standard concepts such as database connectivity, networking, Servlet, web-services, etc. In this section, we will discuss what is advance Java, its benefit, uses, topics of advance Java, and the difference between core Java and advance Java.
It is a part of Java programming language. It is an advanced technology or advance version of Java specially designed to develop web-based, network-centric or enterprise applications. It includes the concepts like Servlet, JSP, JDBC, RMI, Socket programming, etc. It is a specialization in specific domain.
Most of the applications developed using advance Java uses tow-tier architecture i.e. Client and Server. All the applications that runs on Server can be considered as advance Java applications.
Why Advance Java?
- It simplifies the complexity of a building n-tier application.
- Standardizes and API between components and application sever container.
- JEE application Server and Containers provides the framework services.
Why is it important to choose Entri?
- Excellent online platform for all the Competitive Exams.
- Provides updated materials created by the Entri Experts.
- Entri provides a best platform with full- length mock tests including previous year question papers.
- You can download the app for free and join the required classes.
- Entri wishes you all the best for your examinations and future endeavours.
“YOU DON’T HAVE TO BE GREAT TO START, BUT YOU HAVE TO START TO BE GREAT.”