Думаю, наиболее быстро будет с помощью предварительно сформированной таблицы подстановки - Look up table (LUT).
Просто создаете таблицу из 65536 16-битных чисел, где каждому индексу соответствует результат транспонирования. И берите готовый результат по индексу.
RandomAccessFile, FileInputStream - это абстракции поверх системного I/O. В идеале они должны
иметь всего 1 метод. Чтения блока байтов в буфер. Но идя навстречу разработчику они любезно
добавили чтение примитивов чтоб читать двоичные форматы например JPG, MP3, SQlite и прочее
в виде sequence из примитивов в правильном порядке.
Самая простая интеграция - это pipe в Unix. Этому методу 100 лет в обед но обычно
разработчики не помнят о нем.
java app.jar | python3 app.py
Из недостатков - это в одну сторону работает. Как MQ.
Если запускается джоб на java который передает информацию к python-job то можно вызвать через ProcessBuilder. Здесь можно проверить код возврата и принять решение о том правильно
ли Python отработал. Из недостатков - запуск процесса - не очень быстрое событие поэтому
на высокую частоту не стоит расчитывать.
Если взаимодействие - более быстрое и сложное типа RPC то тогда java может быть например REST
клиентом а python - сервером.
Не надо объект поворачивать. надо его рисовать сразу правильно ориентированным.
Ваш ромб - это 4 точки. Одну вы знаете - она на окружности, под заданным углом в зависимости от скорости. Вы эту точку вычислять умеете - вы туда стрелочку спидометра рисуете.
Противоположную точку вы можете легко найти - она под тем же углом, но на окружности большего радиуса.
Две оставшееся точки на окружности какого-то среднего радиуса под углами с небольшим отклонением от предыдущего угла в обе стороны.
Эти углы надо будет рассчитать на бумажке. Нарисуйте 2 коружности заданого радиуса, постройте между ними ромб, проведите его диагонали, найдете там парочку прямоугольних треугольников. В программе можно будет просто эти длины засунуть в формулы и скормить какой-нибудь atan2() функции.
Это Base64.
Раскодируй его и получай данные по известной структуре данных.
Не имея информации о структуре данных раскодировать нереально.
Вот набор байт
Ассемблер полезен при анализе прошивок на безопасность.
При изучении того как работает софт без исходного кода (обратный инжинеринг)
и при решении задач интеграции разных слоёв софта.
Ассемблер также очень близко стоит к разработке компилляторов. И если у вас нет
соотвествующих знаний то строить свой компиллятор вы не сможете. Или вам нужно
будет изучать готовые back-ends, virtual-machines.
Ассемблер помогает при анализе узких мест в коде. В частности например
векторизация вычислений ставит в первую очередь вопросы на которые ассемблер
отвечает а ЯВУ - нет.
Знания ассемблера помогают сделать бинарник компактнее. Это важно при разработке
встраиваемых систем.
РЕСТ может быть выполнен на чем угодно, хоть на pure c. Вопрос скила и удобства. Node полюбили за то что фронтэндерам не надо вкатываться с нуля, но это не делает его лучшим.
В геймдеве нету проблем сделать умного бота. И ИИ здесь вобщем-то не при делах. Бот на обычной линейной логике вполне себе симулирует интеллект. Я общался недавно на эту тему с одним тех-лидом. Он говорит - что в целом для игры это не нужно ИИ. Заказчик не видит никакого резона. Игрок щас пошел глупый. Ленивый. И иногда ему надо наоборот понизить планку требований. И сделать игру комфортной. Грубо говоря бот должен быть просто пушечным мясом. И это - хороший бот.
Программирование Андроид весьма специфично. Там JVM не такая.
Поэтому я тоже задам вопрос - под какую Java автор хочет разрабатывать.
У современных IDE количество фич исчислятеся тысячами а если ставить плагины то еще на порядки. И вообще спор на тему IDE он не совсем технический а скорее - спор вкусов. Кому арбузы нравятся а кому дыни. Без конкретной аргументации ибо невозможно дать точное определение вкусам.
Но если кодить конкртено под Андроид систему то надо смотреть в первую очередь ту IDE которую рекомендует производитель.
public class Main{
public static void main(String[] args){
int [][] number = new int[2][2];
for( int i = 0; i < number.length; i++){
for(int j = 0; j < number[i].length; j++){ // ЗДЕСЬ .lenght и j++
System.out.println(number[i][j]);
}
}
}
}
Рекламные трекеры, рекламные CDN, встроенные iframe с рекламой, использование сервисов, которые собирают очень много информации о вас (Яндекс, Гугл, Фейсбук), все что вы пишите в поисковике Гугл будет отправляться на их сервера для анализа и в будущем для показа контекстной рекламы, так и с другими.