Как стать автором
Обновить

Комментарии 14

Скрытые классы имхо первый шаг к магии. Пойди разберись потом что происходит, я такого на рельсах наелся.

В двух словах, для чего они могут понадобиться? Трояны?)))
Честно, интересно. Может что то типа защиты интеллектуальной собственности?

В JEP 371 всё же написано. Никакой магии. На самом деле, почти для всего, для чего сейчас используется динамическая кодогенерация (всевозможные прокси, лямбды, обёртки, фильтры и скомпилированные выражения), лучше подходят именно hidden classes, потому что 1) они по смыслу анонимные; 2) их хорошо бы уметь собирать независимо от ClassLoader'а; 3) им зачастую требуется приватный доступ к контексту, в рамках которого динамический класс генерируется.

Подобная функциональность была доступна давно в виде недокументированного метода Unsafe.defineAnonymousClass. Теперь на смену неофициальному API приходит стандартный поддерживаемый.
и это хорошо, и это правильно, и так и должно быть (с) МСГ
Кровавый энтерпрайз такого не осилит.
осиливаем же
Ого как можно будет

VarHandle intHandle = MemoryHandles.varHandle(int.class,
        ByteOrder.nativeOrder());

try (MemorySegment segment = MemorySegment.allocateNative(100)) {
    MemoryAddress base = segment.baseAddress();
    for (int i = 0; i < 25; i++) {
        intHandle.set(base.addOffset(i * 4), i);
    }
}


Что-то прям Оракл Яву не хоронит а даже немного наоборот. Удивительно и прекрасно.

Это всё детские примерчики. Мне вот интересно, можно ли будет описать сишную структуру в java-классе и натянуть байты на него.

habr.com/ru/company/leader-id/blog/505072
раздел «MemoryLayout».

То есть, вроде бы можно будет.

Ну или я не правильно вопрос понял.

Я думаю это оно и есть, но там структура описывается кодом вручную. Прям напрашиваются библиотеки типа jackson json, которые будут десериализовывать структуру в памяти в java-объект по (возможно аннотированному) классу, как раз используя Memory Access/Layout APIs.

New Option Added to jcmd for Writing a gzipped Heap Dump (JDK-8237354)

Лучше поздно, чем никогда :) уже поднадоело сначала ждать, пока процесс запишет дамп, потом ужимать, потом перекидывать… Хоть один шаг сократили.

Java 15, как и 12, 13, 14, является STS-релизом, и у неё выйдет только два обновления.


Java 14 разве не LTS?
Нет, LTS это 11, 17, 23, 29 и т.д.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации