Memory

Video of this last year’s lecture - https://web.microsoftstream.com/video/e2f22e2a-ed00-47a0-9e7e-b4030bbe9586

Physical Memory

There are many ways of looking at memory. The images below describe the physical structure of computer memory and the protocols that involved in accessing it.
alt text
alt text
alt text
alt text
This module does not focus on physical memory, nor on how it is accessed electronically. Instead this module focuses on how software accesses memory.

The Java Virtual Machine

We will start by looking at the Java Virtual Machine (JVM).

The JVM is an abstract virtual computer that is used to compile and execute Java code. Different implementations of JVMs are what allow Java to be compiled and run on different types of machines.

We want to look at how memory is used by software running in the JVM. Different types of data are stored in different sections of the JVM. For our purposes there are four different memory areas.

  • The code section contains your bytecode. Bytecode is the compiled version of your code.
  • The stack section contains methods, local variables, and reference variables
  • The heap section contains objects, including all the data within those objects
  • The static section contains static data and methods