Класс 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 |
Возвращает атрибут с заданным именем (если он существует). |
Stream<String> |
attributes() |
Возвращает поток имён атрибутов, связанных с этим макетом. |
final long |
bitAlignment() |
Возвращает ограничение выравнивания, связанное с этим макетом, выраженное в битах. |
long |
bitSize() |
Вычисляет размер макета в битах. |
Optional<DynamicConstantDesc<ValueLayout>> |
describeConstable() |
|
boolean |
equals |
Указывает, является ли другой объект "равным" этому. |
int |
hashCode() |
Возвращает код хэширования для объекта. |
boolean |
hasSize() |
Имеет ли этот макет указанный размер? |
boolean |
isPadding() |
Является ли это макетом заполнения (например, макет, созданный из MemoryLayout.paddingLayout(long)) ? |
final Optional<String> |
name() |
Возвращает имя (если оно есть), связанное с этим макетом. |
ByteOrder |
order() |
Возвращает порядок байтов значения. |
String |
toString() |
Возвращает строковое представление объекта. |
ValueLayout |
withAttribute |
Возвращает новый макет памяти, который содержит те же атрибуты, что и этот макет, плюс новый указанный атрибут. |
ValueLayout |
withBitAlignment |
Создаёт новый макет с заданным ограничением выравнивания. |
ValueLayout |
withName |
Создаёт новый макет с заданным именем макета. |
ValueLayout |
withOrder |
Возвращает новый макет значения с заданным порядком байтов. |
Методы, объявленные в классе 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в противном случае. - См. также:
hashCode
public int hashCode()
ObjectHashMap. Общий контракт hashCode :
- Всякий раз, когда он вызывается для одного и того же объекта более одного раза во время выполнения Java-приложения, метод
hashCodeдолжен последовательно возвращать то же целое число, при условии, что никакая информация, используемая в сравненияхequalsобъекта, не изменяется. Это целое число не обязательно должно оставаться неизменным от одного выполнения приложения к другому. - Если два объекта равны согласно методу
equals, то вызов методаhashCodeдля каждого из двух объектов должен привести к одному и тому же целочисленному результату. - Не требуется, чтобы если два объекта не равны согласно методу
equals, то вызов методаhashCodeдля каждого из двух объектов должен привести к различным целочисленным результатам. Однако программист должен понимать, что получение различных целочисленных результатов для неравных объектов может улучшить производительность хэш-таблиц.
- Определено в:
-
hashCodeв интерфейсеMemoryLayout - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
describeConstable
public Optional<DynamicConstantDesc<ValueLayout>> describeConstable()
MemoryLayoutOptional, содержащую номинальный дескриптор для этой компоновки, если он может быть создан, или пустой Optional, если он не может быть создан.- Определено в:
-
describeConstableв интерфейсеConstable - Определено в:
-
describeConstableв интерфейсеMemoryLayout - Возвращает:
Optional, содержащий результирующий номинальный дескриптор, или пустойOptional, если он не может быть создан.
withName
public ValueLayout withName(String name)
Это эквивалентно следующему коду:
withAttribute(LAYOUT_NAME, name);
- Определено в:
-
withNameв интерфейсе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 - Возвращает:
- имя компоновки (если есть).
- См. также:
attribute
public Optional<Constable> attribute(String name)
MemoryLayout- Определено в:
-
attributeв интерфейсеMemoryLayout - Параметры:
-
name- имя атрибута - Возвращает:
- атрибут с заданным именем (если он существует).
attributes
public Stream<String> attributes()
MemoryLayout- Определено в:
-
attributesв интерфейсеMemoryLayout - Возвращает:
- поток имён атрибутов, связанных с этой компоновкой.
bitAlignment
public final long bitAlignment()
MemoryLayoutA, которая является битовым выравниванием макета. Если 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()
MemoryLayoutSequenceLayout.elementCount()). Макеты значений (см. ValueLayout) и макеты заполнения (см. MemoryLayout.paddingLayout(long)) всегда имеют указанный размер, поэтому этот метод всегда возвращает true в этих случаях.- Указано в:
-
hasSizeв интерфейсеMemoryLayout - Возвращает:
-
true, если у этого макета указан размер.
bitSize
public long bitSize()
MemoryLayout- Указано в:
-
bitSizeв интерфейсеMemoryLayout - Возвращает:
- размер макета в битах.
isPadding
public boolean isPadding()
MemoryLayoutMemoryLayout.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