ABAP Keyword Documentation → ABAP - Reference → Declarative statemnts → Data Types and Data Objects → Types and Objects - Overview → Data Objects
Memory Consumption of Deep Data Objects
All data types whose data object content represents the actual work data are referred to in ABAP as "flat". The elementary data types of a fixed length are flat, as are structures with solely flat components. The memory requirement of flat data objects is statically defined by the data type. Flat data objects are always static data objects.
On the other hand, data types where the contents of the data objects are references - which, in turn, reference work data in another memory area - are referred to as "deep". Deep refers to types of data and object reference variables as well as to types of strings, internal tables and boxed components. Strings and internal tables are dynamic data objects whose storage requirement can change during program runtime and are managed internally through references. Reference variables belong to the static data objects since their actual size is defined, whereas the size of the explicitly referenced objects is dynamic. Boxed components constitute a combination case since their memory consumption in internal mode is not fixed when the program starts but they can be handled like static data objects with a fixed length. Structures are called deep, irrespective of their nesting, if they contain at least one deep component.
When you work with deep data objects, working memory is requested at program runtime. In the case of reference variables, this is the memory for administration information and the created objects (instances of classes and anonymous data objects). In the case of dynamic data objects (strings, internal tables), this is the memory area for administration information and for the data objects themselves. Objects referenced by reference variables can themselves, in turn, be dynamic - that is, they are or contain strings or internal tables.
The requested memory must be available in the current internal mode since otherwise runtime errors would occur.
Other versions: 7.31 | 7.40 | 7.54
Memory Requirements for Deep Data Objects
Maximum Size of Dynamic Data Objects
Sharing Between Dynamic Data Objects
Complex Data Objects with Deep Components