- Here we list the basic features that make Java a powerful and
popular programming language:
- Platform Independence
- The Write-Once-Run-Anywhere ideal has not been achieved
(tuning for different platforms usually required), but closer
than with other languages.
- Object Oriented
- Object oriented throughout - no coding outside of class
definitions, including main().
- An extensive class library available in the core language
packages.
- Compiler/Interpreter Combo
- Code is compiled to bytecodes that are interpreted by a
Java virtual machines (JVM) .
- This provides portability to any machine for which a virtual
machine has been written.
- The two steps of compilation and interpretation allow for
extensive code checking and improved security.
- Robust
- Exception handling built-in, strong type checking (that
is, all data must be declared an explicit type), local variables
must be initialized.
- Several dangerous features of C &
C++ eliminated:
- No memory pointers
- No preprocessor
- Array index limit checking
- Automatic Memory Management
- Automatic garbage collection - memory management handled
by JVM.
- Security
- No memory pointers
- Programs runs inside the virtual
machine sandbox.
- Array index limit checking
- Code pathologies reduced by
- bytecode verifier - checks classes after loading
- class loader - confines objects to unique namespaces.
Prevents loading a hacked "java.lang.SecurityManager"
class, for example.
- security manager - determines what resources
a class can access such as reading and writing to the
local disk.
- Dynamic Binding
- The linking of data and methods to where they are located,
is done at run-time.
- New classes can be loaded while a program is running. Linking
is done on the fly.
- Even if libraries are recompiled, there is no need to recompile
code that uses classes in those libraries.
This differs from C++, which uses static binding. This can
result in fragile classes for cases where linked code
is changed and memory pointers then point to the wrong addresses.
- Good Performance
- Interpretation of bytecodes slowed performance in early
versions, but advanced virtual machines with adaptive and
just-in-time compilation and other techniques now typically
provide performance up to 50% to 100% the speed of C++ programs.
- Threading
- Lightweight processes, called threads, can easily
be spun off to perform multiprocessing.
- Can take advantage of multiprocessors where available
- Great for multimedia displays.
- Built-in Networking
- Java was designed with networking in mind and comes with
many classes to develop sophisticated Internet communications.
No comments:
Post a Comment