Instead, Java requires all constant identifiers and functions (methods) to be encapsulated within class declarations. Java provides standardized support for multiple threads (lightweight tasks) and automatic garbage collection of dynamically allocated memory. Further, Java fully specifies the behavior of every operator on every type, unlike C and C++ which leave many behaviors implementation-dependent. These changes were designed to improve software scalability, reduce software development and maintenance costs, and to achieve full portability of Java software. Anecdotal evidence suggests that many former C and C++ programmers have enthusiastically welcomed these language improvements. One distinguishing characteristic of Java is its execution model. Java programs are first translated into a fully portable standard bytecode representation. The bytecode is then available for execution in any environment that provides support for a Java virtual machine. A Java virtual machine is simply a system of software that understands and executes the standard Java bytecode representation. All major operating systems now support execution of Java programs, including Windows 95, NT, and CE, Solaris, HPUX, IRIX, AIW, and MacOS. To prevent viruses from being introduced by a foreign Java bytecode program, the Java virtual machine includes a Java bytecode analyzer that verifies the bytecode but does not contain requests that would compromise the local system. By convention, this bytecode analyzer is applied to every Java program before it is executed. Bytecode analysis is combined with optional runAdding Real-Time Capabilities to Java
[1]
Alexander George McManus,et al.
Real-Time Java
,
1998
.
[2]
Kelvin D. Nilsen,et al.
Progress in Hardware-Assisted Real-Time Garbage Collection
,
1995,
IWMM.
[3]
Sheng Cheng,et al.
Scheduling algorithms for hard real-time systems: a brief survey
,
1989
.
[4]
Kelvin D. Nilsen,et al.
Reliable Real-Time Garbage Collection of C++
,
1994,
Comput. Syst..
[5]
Lui Sha,et al.
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
,
1990,
IEEE Trans. Computers.
[6]
James W. Layland,et al.
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
,
1989,
JACM.
[7]
James Gosling,et al.
The Java Programming Language" The Java Series
,
1996
.
[8]
Ken Arnold,et al.
The Java programming language (2nd ed.)
,
1998
.
[9]
Ken Arnold,et al.
The Java Programming Language
,
1996
.
[10]
James A. Gosling,et al.
The java language environment: a white paper
,
1995
.
[11]
Kelvin Nilsen,et al.
Issues in the Design and Implementation of Real-Time Java
,
1998
.