Интерфейс AddressLayout
- Все суперинтерфейсы:
-
MemoryLayoutPREVIEW,ValueLayoutPREVIEW
public sealed interface AddressLayout extends ValueLayoutPREVIEW
AddressLayout — это предварительный API платформы Java. MemorySegment.class. Размер и выравнивание макета адреса зависят от платформы (например, на 64-битной платформе размер и выравнивание макета адреса составляют 8 байт). Макет адреса может необязательно иметь макет целевого значения (целевой макет). Макет адреса с целевым макетом T может использоваться для моделирования адреса области памяти, макет которой T. Например, макет адреса с целевым макетом ValueLayout.JAVA_INTПРЕДПРОСМОТР может использоваться для моделирования адреса области памяти длиной 4 байта. Указание целевого макета может быть полезно в следующих ситуациях:
- При доступе к сегменту памяти, который был получен путем чтения адреса из другого сегмента памяти, например, с помощью
MemorySegment.getAtIndex(AddressLayout, long)ПРЕДПРОСМОТР; - При создании обработчика вызова вниз по методу, используя
Linker.downcallHandle(FunctionDescriptor, Option...)ПРЕДПРОСМОТР; - При создании заглушки вызова вверх, используя
Linker.upcallStub(MethodHandle, FunctionDescriptor, Arena, Option...)ПРЕДПРОСМОТР.
- С:
- 19
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе java.lang.foreign.MemoryLayoutПРЕДПРОСМОТР
MemoryLayout.PathElementPREVIEW
Вложенные классы/интерфейсы, объявленные в интерфейсе java.lang.foreign.ValueLayoutПРЕДПРОСМОТР
ValueLayout.OfBooleanPREVIEW, ValueLayout.OfBytePREVIEW, ValueLayout.OfCharPREVIEW, ValueLayout.OfDoublePREVIEW, ValueLayout.OfFloatPREVIEW, ValueLayout.OfIntPREVIEW, ValueLayout.OfLongPREVIEW, ValueLayout.OfShortPREVIEW
Краткое описание полей
Поля, объявленные в интерфейсе java.lang.foreign.ValueLayoutПРЕДПРОСМОТР
ADDRESS, ADDRESS_UNALIGNED, JAVA_BOOLEAN, JAVA_BYTE, JAVA_CHAR, JAVA_CHAR_UNALIGNED, JAVA_DOUBLE, JAVA_DOUBLE_UNALIGNED, JAVA_FLOAT, JAVA_FLOAT_UNALIGNED, JAVA_INT, JAVA_INT_UNALIGNED, JAVA_LONG, JAVA_LONG_UNALIGNED, JAVA_SHORT, JAVA_SHORT_UNALIGNED
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Optional |
targetLayout() |
Возвращает целевой макет, связанный с этим макетом адреса (если таковой имеется). |
AddressLayoutPREVIEW |
withByteAlignment |
Возвращает макет памяти с такими же характеристиками, что и у этого макета, но с заданным ограничением выравнивания (в байтах). |
AddressLayoutPREVIEW |
withName |
Возвращает макет памяти с такими же характеристиками, что и у этого макета, но с указанным именем. |
AddressLayoutPREVIEW |
withOrder |
Возвращает макет значения с такими же характеристиками, что и у этого макета, но с указанным порядком байтов. |
AddressLayoutPREVIEW |
withoutName() |
Возвращает макет памяти с такими же характеристиками, что и у этого макета, но без имени. |
AddressLayoutPREVIEW |
withoutTargetLayout() |
Возвращает макет адреса с тем же носителем, ограничением выравнивания, именем и порядком, что и у этого макета адреса, но без целевого макета. |
AddressLayoutPREVIEW |
withTargetLayout |
Возвращает макет адреса с тем же носителем, ограничением выравнивания, именем и порядком, что и у этого макета адреса, но связанный с указанным целевым макетом. |
Методы, объявленные в интерфейсе java.lang.foreign.MemoryLayoutПРЕДПРОСМОТР
byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, select, sliceHandle, toString, varHandle
Методы, объявленные в интерфейсе java.lang.foreign.ValueLayoutПРЕДПРОСМОТР
arrayElementVarHandle, carrier, order
Подробности методов
withName
AddressLayoutPREVIEW withName(String name)
- Указано:
-
withNameв интерфейсеMemoryLayoutPREVIEW - Указано:
-
withNameв интерфейсеValueLayoutPREVIEW - Параметры:
-
name- имя макета. - Возвращает:
- макет памяти с теми же характеристиками, что и этот макет, но с указанным именем
- См. также:
withoutName
AddressLayoutPREVIEW withoutName()
- Указано:
-
withoutNameв интерфейсеMemoryLayoutPREVIEW - Указано:
-
withoutNameв интерфейсеValueLayoutPREVIEW - Возвращает:
- макет памяти с теми же характеристиками, что и этот макет, но без имени
- См. также:
withByteAlignment
AddressLayoutPREVIEW withByteAlignment(long byteAlignment)
- Указано:
-
withByteAlignmentв интерфейсеMemoryLayoutPREVIEW - Указано:
-
withByteAlignmentв интерфейсеValueLayoutPREVIEW - Параметры:
-
byteAlignment- ограничение выравнивания макета, выраженное в байтах. - Возвращает:
- макет памяти с теми же характеристиками, что и этот макет, но с указанным ограничением выравнивания (в байтах)
withOrder
AddressLayoutPREVIEW withOrder(ByteOrder order)
- Указано:
-
withOrderв интерфейсеValueLayoutPREVIEW - Параметры:
-
order- желаемый порядок байтов. - Возвращает:
- макет значения с теми же характеристиками, что и этот макет, но с указанным порядком байтов
withTargetLayout
AddressLayoutPREVIEW withTargetLayout(MemoryLayoutPREVIEW layout)
- Примечание API:
- Этот метод также может использоваться для создания макета адреса, который при использовании создает сегменты памяти с максимальным размером (например, Long.MAX_VALUE). Это можно сделать, используя макет последовательности целевого значения с неопределенным размером, как показано ниже:
AddressLayout addressLayout = ... AddressLayout unboundedLayout = addressLayout.withTargetLayout( MemoryLayout.sequenceLayout(ValueLayout.JAVA_BYTE));Этот метод ограничен. Ограниченные методы небезопасны, и при неправильном использовании их применение может привести к сбою JVM или, что еще хуже, к скрытой порче памяти. Поэтому клиенты должны избегать зависимости от ограниченных методов и использовать безопасные и поддерживаемые функции, где это возможно.
- Параметры:
-
layout- целевой макет. - Возвращает:
- макет адреса с теми же характеристиками, что и этот макет, но с предоставленным целевым макетом.
- Исключения:
-
IllegalCallerException- Если вызывающий находится в модуле, в котором не включен доступ к нативному коду. - См. также:
withoutTargetLayout
AddressLayoutPREVIEW withoutTargetLayout()
- Примечание API:
- Это может быть полезно для сравнения двух макетов адресов, которые имеют разные целевые макеты, но в остальном равны.
- Возвращает:
- макет адреса с теми же характеристиками, что и этот макет, но без целевого макета.
- См. также:
targetLayout
Optional<MemoryLayoutPREVIEW> targetLayout()
- Возвращает:
- целевой макет, связанный с этим макетом адреса (если таковой имеется)
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/foreign/AddressLayout.html
AddressLayoutтолько при включенных предварительных функциях.