This will not work in Java, because Java does not expose the low-level layout of its objects. It might be possible to contrive something analogous in a Java binding, somehow encoding object references instead of physical addresses. This leaves description of noncontiguous buffers as the essential role for derived data types in the Java binding. Every derived data type constructable in the Java binding has a uniquely defined base type . This is one of the 9 basic types enumerated in section A.3.2 .
Derived types inherit their base types from their precursors in a straightforward way.
In contrast to the C and Fortran bindings the displacements are in terms of subscripts in the buffer array argument, not byte displacements. The base types for the predefined MPI datatypes are The symbol is a special undefined value. The displacement sequence for the predefined types consists of a single zero. If the displacement sequence of a datatype is then Rationale. This definition of the extent differs from the definition in the C or Fortran.