Spec-Zone.ru › OpenJDK 17

Класс ValueLayout

java.lang.Object
jdk.incubator.foreign.ValueLayout
Все реализуемые интерфейсы:
Constable, MemoryLayout
public final class ValueLayout extends Object implements MemoryLayout
Макет значения. Макет значения используется для моделирования расположения в памяти значений основных типов данных, таких как целочисленные типы (с знаком или без знака) и типы с плавающей точкой. Каждый макет значения имеет размер и порядок байтов (см. ByteOrder).

Это значение-базовый класс; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе могут возникнуть непредсказуемые последствия. Например, в будущей версии синхронизация может завершиться неудачей. Для сравнений следует использовать метод equals.

Если не указано иное, передача null аргумента или аргумента массива, содержащего один или несколько null элементов, методу в этом классе приводит к выбрасыванию NullPointerException.

Требования к реализации:
Этот класс неизменяемый и потокобезопасный.

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе jdk.incubator.foreign.MemoryLayout

MemoryLayout.PathElement

Краткое описание полей

Поля, объявленные в интерфейсе jdk.incubator.foreign.MemoryLayout

LAYOUT_NAME

Краткое описание методов

Модификатор и тип Метод Описание
Optional<Constable> attribute(String name)
Возвращает атрибут с заданным именем (если он существует).
Stream<String> attributes()
Возвращает поток имён атрибутов, связанных с этим макетом.
final long bitAlignment()
Возвращает ограничение выравнивания, связанное с этим макетом, выраженное в битах.
long bitSize()
Вычисляет размер макета в битах.
Optional<DynamicConstantDesc<ValueLayout>> describeConstable()
Возвращает Optional, содержащий номинальный дескриптор для этого макета, если он может быть создан, или пустой Optional, если он не может быть создан.
boolean equals(Object other)
Указывает, является ли другой объект "равным" этому.
int hashCode()
Возвращает код хэширования для объекта.
boolean hasSize()
Имеет ли этот макет указанный размер?
boolean isPadding()
Является ли это макетом заполнения (например, макет, созданный из MemoryLayout.paddingLayout(long)) ?
final Optional<String> name()
Возвращает имя (если оно есть), связанное с этим макетом.
ByteOrder order()
Возвращает порядок байтов значения.
String toString()
Возвращает строковое представление объекта.
ValueLayout withAttribute(String name, Constable value)
Возвращает новый макет памяти, который содержит те же атрибуты, что и этот макет, плюс новый указанный атрибут.
ValueLayout withBitAlignment(long alignmentBits)
Создаёт новый макет с заданным ограничением выравнивания.
ValueLayout withName(String name)
Создаёт новый макет с заданным именем макета.
ValueLayout withOrder(ByteOrder order)
Возвращает новый макет значения с заданным порядком байтов.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Методы, объявленные в интерфейсе jdk.incubator.foreign.MemoryLayout

attribute, attributes, bitAlignment, bitOffset, bitOffsetHandle, bitSize, byteAlignment, byteOffset, byteOffsetHandle, byteSize, hasSize, isPadding, map, name, select, sliceHandle, varHandle

Подробное описание методов

order

public ByteOrder order()
Возвращает порядок байтов значения.
Возвращает:
порядок байтов значения.

withOrder

public ValueLayout withOrder(ByteOrder order)
Возвращает новую компоновку значения с заданным порядком байтов.
Параметры:
order - желаемый порядок байтов.
Возвращает:
новую компоновку значения с заданным порядком байтов.

toString

public String toString()
Описание скопировано из класса: Object
Возвращает строковое представление объекта.
Определено в:
toString в интерфейсе MemoryLayout
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта.

equals

public boolean equals(Object other)
Описание скопировано из класса: Object
Указывает, является ли какой-либо другой объект "равным" этому.

Метод equals реализует отношение эквивалентности на ссылках на объекты, отличные от null:

  • Он рефлексивен: для любого значения ссылки на объект, отличного от null, x, x.equals(x) должно возвращать true.
  • Он симметричен: для любых значений ссылок на объекты, отличные от null, x и y, x.equals(y) должно возвращать true тогда и только тогда, когда y.equals(x) возвращает true.
  • Он транзитивен: для любых значений ссылок на объекты, отличные от null, x, y, и z, если x.equals(y) возвращает true и y.equals(z) возвращает true, тогда x.equals(z) должно возвращать true.
  • Он постоянен: для любых значений ссылок на объекты, отличные от null, x и y, многочисленные вызовы x.equals(y) последовательно возвращают true или последовательно возвращают false, при условии, что никакая информация, используемая в сравнениях equals объектов, не изменяется.
  • Для любого значения ссылки на объект, отличного от null, x, x.equals(null) должно возвращать false.

Отношение эквивалентности разделяет элементы, на которые она воздействует, на классы эквивалентности; все члены класса эквивалентности равны друг другу. Члены класса эквивалентности взаимозаменяемы, по крайней мере, для некоторых целей.

Определено в:
equals в интерфейсе MemoryLayout
Параметры:
other - объект ссылки для сравнения.
Возвращает:
true если этот объект такой же, как аргумент obj; false в противном случае.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Описание скопировано из класса: Object
Возвращает значение хэш-кода для объекта. Этот метод поддерживается для использования в хэш-таблицах, таких как предоставляемые HashMap.

Общий контракт hashCode :

  • Всякий раз, когда он вызывается для одного и того же объекта более одного раза во время выполнения Java-приложения, метод hashCode должен последовательно возвращать то же целое число, при условии, что никакая информация, используемая в сравнениях equals объекта, не изменяется. Это целое число не обязательно должно оставаться неизменным от одного выполнения приложения к другому.
  • Если два объекта равны согласно методу equals, то вызов метода hashCode для каждого из двух объектов должен привести к одному и тому же целочисленному результату.
  • Не требуется, чтобы если два объекта не равны согласно методу equals, то вызов метода hashCode для каждого из двух объектов должен привести к различным целочисленным результатам. Однако программист должен понимать, что получение различных целочисленных результатов для неравных объектов может улучшить производительность хэш-таблиц.
Определено в:
hashCode в интерфейсе MemoryLayout
Возвращает:
значение хэш-кода для этого объекта.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

describeConstable

public Optional<DynamicConstantDesc<ValueLayout>> describeConstable()
Описание скопировано из интерфейса: MemoryLayout
Возвращает Optional, содержащую номинальный дескриптор для этой компоновки, если он может быть создан, или пустой Optional, если он не может быть создан.
Определено в:
describeConstable в интерфейсе Constable
Определено в:
describeConstable в интерфейсе MemoryLayout
Возвращает:
Optional, содержащий результирующий номинальный дескриптор, или пустой Optional, если он не может быть создан.

withName

public ValueLayout withName(String name)
Создаёт новую компоновку, которая имеет желаемое имя компоновки.

Это эквивалентно следующему коду:


    withAttribute(LAYOUT_NAME, name);
 
Определено в:
withName в интерфейсе MemoryLayout
Параметры:
name - имя компоновки.
Возвращает:
новую компоновку, которая такая же, как эта компоновка, за исключением имени, связанного с ней.
См. также:
  • MemoryLayout.name()

withBitAlignment

public ValueLayout withBitAlignment(long alignmentBits)
Создаёт новую компоновку, которая имеет желаемое ограничение выравнивания.
Определено в:
withBitAlignment в интерфейсе MemoryLayout
Параметры:
alignmentBits - ограничение выравнивания компоновки, выраженное в битах.
Возвращает:
новую компоновку, которая такая же, как эта компоновка, за исключением ограничения выравнивания, связанного с ней.

withAttribute

public ValueLayout withAttribute(String name, Constable value)
Возвращает новую компоновку памяти, которая имеет те же атрибуты, что и эта компоновка, плюс новый указанный атрибут. Если эта компоновка уже содержит атрибут с тем же именем, то существующее значение атрибута перезаписывается в возвращаемой компоновке.
Определено в:
withAttribute в интерфейсе MemoryLayout
Параметры:
name - имя атрибута.
value - значение атрибута.
Возвращает:
новую компоновку памяти, которая имеет те же атрибуты, что и эта компоновка, плюс новый указанный атрибут.

name

public final Optional<String> name()
Описание скопировано из интерфейса: MemoryLayout
Возвращает имя (если есть) ассоциированное с этой компоновкой.

Это эквивалентно следующему коду:


    attribute(LAYOUT_NAME).map(String.class::cast);
 
Определено в:
name в интерфейсе MemoryLayout
Возвращает:
имя компоновки (если есть).
См. также:
  • MemoryLayout.withName(String)

attribute

public Optional<Constable> attribute(String name)
Описание скопировано из интерфейса: MemoryLayout
Возвращает атрибут с заданным именем (если он существует).
Определено в:
attribute в интерфейсе MemoryLayout
Параметры:
name - имя атрибута
Возвращает:
атрибут с заданным именем (если он существует).

attributes

public Stream<String> attributes()
Описание скопировано из интерфейса: MemoryLayout
Возвращает поток имён атрибутов, связанных с этой компоновкой.
Определено в:
attributes в интерфейсе MemoryLayout
Возвращает:
поток имён атрибутов, связанных с этой компоновкой.

bitAlignment

public final long bitAlignment()
Описание скопировано из интерфейса: MemoryLayout
Возвращает ограничение выравнивания, связанное с этим макетом, выраженное в битах. Выравнивание макета определяет степень двойки A, которая является битовым выравниванием макета. Если A <= 8, то A/8 — это количество байтов, которое должно быть выровнено для любого указателя, правильно указывающего на этот макет. Таким образом:
  • A=8 означает отсутствие выравнивания (в обычном смысле), что часто встречается в пакетах.
  • A=64 означает выравнивание по слову (в LP64), A=32 выравнивание по типу int, A=16 выравнивание по типу short и т.д.
  • A=512 — это самое строгое требование выравнивания, необходимое ABI x86/SV (для данных AVX-512).
Если для этого макета не было установлено явного ограничения выравнивания (см. MemoryLayout.withBitAlignment(long)), то этот метод возвращает ограничение естественного выравнивания (в битах), связанное с этим макетом.
Указано в:
bitAlignment в интерфейсе MemoryLayout
Возвращает:
ограничение выравнивания макета в битах.

hasSize

public boolean hasSize()
Описание скопировано из интерфейса: MemoryLayout
Указан ли размер этого макета? Макет не имеет заданного размера, если он (или он содержит) макет последовательности, размер которого не задан (см. SequenceLayout.elementCount()). Макеты значений (см. ValueLayout) и макеты заполнения (см. MemoryLayout.paddingLayout(long)) всегда имеют указанный размер, поэтому этот метод всегда возвращает true в этих случаях.
Указано в:
hasSize в интерфейсе MemoryLayout
Возвращает:
true, если у этого макета указан размер.

bitSize

public long bitSize()
Описание скопировано из интерфейса: MemoryLayout
Вычисляет размер макета в битах.
Указано в:
bitSize в интерфейсе MemoryLayout
Возвращает:
размер макета в битах.

isPadding

public boolean isPadding()
Описание скопировано из интерфейса: MemoryLayout
Является ли это макетом заполнения (например, макет созданный из MemoryLayout.paddingLayout(long)) ?
Указано в:
isPadding в интерфейсе MemoryLayout
Возвращает:
true, если этот макет является макетом заполнения.

© 1993, 2021, 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/17/docs/api/jdk.incubator.foreign/jdk/incubator/foreign/ValueLayout.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API