Как эти данные потом используются?
Как ещё вариант - всем пишущим выдать ChannelWriter и кидать в канал команду типа "записать по ключу x значение y"
И на выделенном потоке звать в цикле ChannelReader и работать с этим словарём.
Но надо смотреть на то, как эти данные потом используются.
Нельзя было потратить пару минут на превращение рисунка в DDL?)
Не говоря уже о том что рисунок противоречит сам себе и не полон.
Ну и да - это задание, а не вопрос (в таком виде)
DR01D0, а как ты так код набираешь и в чём, если об опечатке узнал только при попытке скомпилировать?
Помочь среду настроить, чтобы сразу подсвечивало красным и давало нормальные подсказки при наборе?
Запрещено код прикладывать скриншотами. Приложи нормальным текстом.
Интересно, что у меня тоже этот код даёт не тот цвет, что можно было ожидать rgb(104, 104, 117) вместо rgb(35, 35, 45)
Если я правильно понимаю задание, то тебе и так передаётся состояние shift и caps,
Тебе надо просто адекватно определить, какой символ будет выводиться.
artempawww, зависит от того, что в вашем понимании "лучше".
По жору ресурсов всё плюс/минус одинаково, но у quarkus и micronaut с этим должно быть лучше всего, тк они спроектированы под работу с graalvm.
Синтетику можно посмотреть на https://www.techempower.com/benchmarks/
(если ему верить то quarkus > vertx > micronaut > spring > spark)
По набору фичей, удобству и экосистеме - лучше смотреть на каждый, сравнивать, и выбирать то что больше по душе и лучше подходит под ваши задачи.
Если чисто для учёбы - лучше начать со спринга, ибо по нему целая гора материалов.
Если для поиска работы - тоже лучше спринг, так как он используется в большем количестве компаний, чем все остальные.
Визуальный стиль при желании можно сделать любой на уровне рендера.
А 2д становится 2д скорее от геймплея