In the previous articles i explained : History of Java, What is Java Technology, Asp.Net Alert Box, Asp.Net Setup and Deployment, Asp.Net Connection String, Asp.Net Authentication and Authorization and Facebook sidebar like box for website.
In this article we will explain about basic key features of Java and also about some basic concepts of Java. The fundamental forces that necessitates the invention of Java are Portability and Security. Other factors also play an important role in modeling the final form of the Java language. Let's briefly examine each of these words, with a view to better understanding what makes Java tick.
Most programmers working these days use C, and most programmers doing object-oriented programming use C++. Java is designed as closely to C++ as possible in order to make the system more comprehensible. Java omits many rarely used, poorly understood, confusing features of C++.
Like C++, Java is an object-oriented language. Object-oriented languages allow the programmer to organize a program, so that it closely models the real world in structure and in the interactions among its components.
Java was built with the Internet and Web in mind. As do most other languages, Java includes pre-built components or libraries that provide important additional capabilities beyond the language itself. However, Java's standard libararies specifically include network-aware units that greatly facilitate writing internet applications.
Java's executable files are composed of bytecodes that are instructions and data relating to a hypothetical computer called the Java virtual machine. Each Machine that runs a Java program uses a small program, known as the Java run-time system, to execute the Java bytecodes in your program. This design is what makes it possible to run the same program on a Macintosh, a Sun, and a PC.
Java contains features that make the task of writing robust software easier. In Java programs, exceptions can be detected and handled according to instructions written by the programmer, often allowing software to keep working in the face of unexpected problems.
One of the potential errors of the Internet is the possibility of security breaches-- viruses that infect your computer, or hackers who take advantage of a software glitch to invade your personal cyberspace and make off with confidential information.
Applets, which are Java programs automatically downloaded when a web page is displayed, are subject to a number of limitations that are designed to ruduce the chance that simply viewing someone's page might result in harm to your system or data. No such system is absolutely reliable and none will ever be; but Java represents the state-of-the-art in reducing the chances of a disaster.
Java's bytecodes are designed to be read and interpreted-- in exactly the same manner-- on any computer hardware or operating system that supports a Java run time. No translation or conversion is necessary.
Java programs contain no implementation-dependent aspects, so the result of executing a series of Java bytecodes should always be the same no matter on what system they are executed. Moreover, the Java run-time system itself, though it is written in C, is written in a way that simplifies porting the Java run-time to a new computer system.
A typical problem with interpreted languages is that they are somewhat less efficient than compiled languages. A program written by use of an interpreted language may run 20 to 100 times slower that the same program written by use of a compiled language.
Java aims at overcoming this problem through the use of a technique known as just-in-time compilation. A just-in-time compiler is an interpreter that remembers the machine code sequences it executes corresponding to the input bytecodes. Having figured out the proper machine code sequence once, it doesn't have to figure it out again if the same code is executed. Instead, it retrieves the memorized sequences and executes them straight away. Studies have suggested that just-in-time compilation may make interpretation of Java bytecodes almost as efficient as native execution of machine-language code.
Developing multithreaded applications in C or C++ can be agony, because these languages lack standard support for operations necessary to create and control threads. Java includes support for multithreaded applications as part of its basic library.
Java's program units, classes, are loaded dynamically (when needed) by the Java run-time system. Loaded classes are then dynamically linked with existing classes to form an integrated unit. The lengthy link-and-load step required by third-generation programming languages is eliminated.