What is exactly java
?
Java is a
simple, object-oriented, network-savvy, interpreted, robust, secure,
architecture-neutral, portable, high-performance, multithreaded, dynamic
computer language.
Characterstics or features of java
1.
Java is a simple language. Java was initially modeled after C
and C++, minus some potentially confusing features. Pointers, multiple implementation
inheritance, and operator overloading are some C/C++ features that are not part
of Java. A feature not mandated in C/C++, but essential to Java, is a
garbage-collection facility that automatically reclaims objects and arrays.
2. Java is an
object-oriented language. Java's
object-oriented focus lets developers work on adapting Java to solve a problem,
rather than forcing us to manipulate the problem to meet language constraints.
This is different from a structured language like C. For example, whereas Java
lets you focus on savings account objects, C requires you to think separately
about savings account state (such a balance) and behaviors (such
as deposit and withdrawal).
3. Java is a network-savvy
language. Java's extensive network library
makes it easy to cope with Transmission Control Protocol/Internet Protocol
(TCP/IP) network protocols like HTTP (HyperText Transfer Protocol) and FTP
(File Transfer Protocol), and simplifies the task of making network
connections. Furthermore, Java programs can access objects across a TCP/IP
network, via Uniform Resource Locators (URLs), with the same ease as you would
have accessing them from the local file system.
4. Java is an interpreted
language. At runtime, a Java program indirectly
executes on the underlying platform (like Windows or Linux) via a virtual
machine (which is a software representation of a hypothetical platform) and the
associated execution environment. The virtual machine translates the Java
program's bytecodes (instructions and associated data) to platform-specific
instructions through interpretation. Interpretation is the act
of figuring out what a bytecode instruction means and then choosing equivalent
"canned" platform-specific instructions to execute. The virtual
machine then executes those platform-specific instructions.
Interpretation makes it easier to debug faulty Java programs because more compile-time information is available at runtime. Interpretation also makes it possible to delay the link step between the pieces of a Java program until runtime, which speeds up development.
Interpretation makes it easier to debug faulty Java programs because more compile-time information is available at runtime. Interpretation also makes it possible to delay the link step between the pieces of a Java program until runtime, which speeds up development.
5. Java is a robust
language. Java programs must be reliable
because they are used in both consumer and mission-critical applications,
ranging from Blu-ray players to vehicle-navigation or air-control systems.
Language features that help make Java robust include declarations, duplicate
type checking at compile time and runtime (to prevent version mismatch
problems), true arrays with automatic bounds checking, and the omission of
pointers. (We will discuss all of these features in detail later in this
series.)
Another aspect of Java's robustness is that loops must be controlled by Boolean expressions instead of integer expressions where 0 is false and a nonzero value is true. For example, Java doesn't allow a C-style loop such as while (x) x++; because the loop might not end where expected. Instead, you must explicitly provide a Boolean expression, such as while (x != 10) x++; (which means the loop will run until x equals 10).
Another aspect of Java's robustness is that loops must be controlled by Boolean expressions instead of integer expressions where 0 is false and a nonzero value is true. For example, Java doesn't allow a C-style loop such as while (x) x++; because the loop might not end where expected. Instead, you must explicitly provide a Boolean expression, such as while (x != 10) x++; (which means the loop will run until x equals 10).
6. Java is a secure language. Java programs are used in networked/distributed environments. Because
Java programs can migrate to and execute on a network's various platforms, it's
important to safeguard these platforms from malicious code that might spread
viruses, steal credit card information, or perform other malicious acts. Java
language features that support robustness (like the omission of pointers) work
with security features such as the Java sandbox security model and public-key
encryption. Together these features prevent viruses and other dangerous code
from wreaking havoc on an unsuspecting platform.
In theory, Java is secure. In practice, various security vulnerabilities have been detected and exploited. As a result, Sun Microsystems then and Oracle now continue to release security updates
7. Java is an
architecture-neutral language. Networks connect platforms with
different architectures based on various microprocessors and operating systems.
You cannot expect Java to generate platform-specific instructions and have
these instructions "understood" by all kinds of platforms that are
part of a network. Instead, Java generates platform-independent bytecode
instructions that are easy for each platform to interpret (via its
implementation of the JVM).
8. Java is a portable
language. Architecture neutrality contributes
to portability. However, there is more to Java's portability than
platform-independent bytecode instructions. Consider that integer type sizes
must not vary. For example, the 32-bit integer type must always be signed and
occupy 32 bits, regardless of where the 32-bit integer is processed (e.g., a
platform with 16-bit registers, a platform with 32-bit registers, or a platform
with 64-bit registers). Java's libraries also contribute to portability. Where
necessary, they provide types that connect Java code with platform-specific
capabilities in the most portable manner possible.
9. Java is a
high-performance language. Interpretation yields a level of
performance that is usually more than adequate. For very high-performance
application scenarios Java uses just-in-time compilation, which analyzes
interpreted bytecode instruction sequences and compiles frequently interpreted
instruction sequences to platform-specific instructions. Subsequent attempts to
interpret these bytecode instruction sequences result in the execution of
equivalent platform-specific instructions, resulting in a performance boost.
10. Java is a
multithreaded language. To
improve the performance of programs that must accomplish several tasks at once,
Java supports the concept of threaded execution. For example, a
program that manages a Graphical User Interface (GUI) while waiting for input
from a network connection uses another thread to perform the wait instead of
using the default GUI thread for both tasks. This keeps the GUI responsive.
Java's synchronization primitives allow threads to safely communicate data
between themselves without corrupting the data.
11. Java is a dynamic
language. Because
interconnections between program code and libraries happen dynamically at
runtime, it isn't necessary to explicitly link them. As a result, when a
program or one of its libraries evolves (for instance, for a bug fix or
performance improvement), a developer only needs to distribute the updated
program or library. Although dynamic behavior results in less code to
distribute when a version change occurs, this distribution policy can also lead
to version conflicts. For example, a developer removes a class type from a
library, or renames it. When a company distributes the updated library,
existing programs that depend on the class type will fail. To greatly reduce
this problem, Java supports an interface type, which is like a
contract between two parties.
Enter Your Comments Below Emoticon