Programming Language Concepts by Peter Sestoft

Programming Language Concepts by Peter Sestoft

Author:Peter Sestoft
Language: eng
Format: epub, pdf
Publisher: Springer International Publishing, Cham


9.3 The Java Virtual Machine (JVM)

9.3.1 The JVM Run-Time State

In general , a JVM runs one or more threads concurrently, but here we shall consider only a single thread of execution. The state of a JVM has the following components:classes that contain methods, where methods contain bytecode;

a heap that stores objects and arrays;

a frame stack for each executing thread;

class loaders, security managers and other components that we do not care about here.

The heap is used for storing values that are created dynamically and whose lifetimes are hard to predict. In particular, all arrays and objects (including strings) are stored on the heap. The heap is managed by a garbage collector, which makes sure that unused values are thrown away so that the memory they occupy can be reused for new arrays and objects. Chapter 10 discusses the heap and garbage collection in more detail.

The JVM frame stack is a stack of frames (also called activation records), containing one frame for each method call that has not yet completed. For instance, when method main has called method fac on the argument 3, which has called itself recursively on the argument 2, and so on, the frame stack has the form shown in Fig. 9.1. Thus the stack has exactly the same shape as in the micro-C abstract machine, see Fig. 8.​3.

Fig. 9.1JVM frame stack (left) and contents of a stack frame (right)



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.