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
Programming Language Concepts by Peter Sestoft.pdf
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.
Hello! Python by Anthony Briggs(9913)
OCA Java SE 8 Programmer I Certification Guide by Mala Gupta(9795)
The Mikado Method by Ola Ellnestam Daniel Brolund(9777)
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8295)
Sass and Compass in Action by Wynn Netherland Nathan Weizenbaum Chris Eppstein Brandon Mathis(7778)
Test-Driven iOS Development with Swift 4 by Dominik Hauser(7763)
Grails in Action by Glen Smith Peter Ledbrook(7696)
The Well-Grounded Java Developer by Benjamin J. Evans Martijn Verburg(7557)
Windows APT Warfare by Sheng-Hao Ma(6818)
Layered Design for Ruby on Rails Applications by Vladimir Dementyev(6547)
Blueprints Visual Scripting for Unreal Engine 5 - Third Edition by Marcos Romero & Brenden Sewell(6414)
Secrets of the JavaScript Ninja by John Resig Bear Bibeault(6409)
Kotlin in Action by Dmitry Jemerov(5062)
Hands-On Full-Stack Web Development with GraphQL and React by Sebastian Grebe(4316)
Functional Programming in JavaScript by Mantyla Dan(4037)
Solidity Programming Essentials by Ritesh Modi(3992)
WordPress Plugin Development Cookbook by Yannick Lefebvre(3783)
Unity 3D Game Development by Anthony Davis & Travis Baptiste & Russell Craig & Ryan Stunkel(3723)
The Ultimate iOS Interview Playbook by Avi Tsadok(3699)
