LWJGL 3. Универсальная загрузка нативных библиотекСовсем недавно LWJGL третьей версии была новинкой, диковинкой. Когда я взялся за нее при переносе After Engine на OpenGL я, бывало, хотел откатиться на вторую версию, где были удобные вспомогательные классы и библиотеки. Однако, к счастью, я этого не сделал, зато открыл простоту и мощь третьей версии. Однако, чтобы не загружать пользователей моего движка лишней работой, я решил закопать все "шершавые" взаимодействия с библиотекой подальше в движок. В первую очередь меня озаботила проблема подгрузки нативных библиотек. Но, как оказалось, реализация автоматической загрузки не так уж и сложна. Стоит учитывать некоторые тонкости - во-первых представленный метод должен выполняться ДО любых обращений к LWJGL библиотеке, а во-вторых, есть некоторая неувязка имен папок с именами архитектуры, Продолжить Рейтинг: 7 (Против: 0 | За: 7) Добавлено: 9.04.2015 от DominaN Комментарии (4) Мотивация для Stream APIКак я уже писал ранее, новый функциональный стиль в Java 8 — это переломный момент в истории языка, новый мир для разработчиков Java, поэтому настало время приспособиться к нему! В этой статье мы рассмотрим некоторые альтернативы традиционным циклам. Функциональный стиль позволяет сказать, что мы хотим получить, вместо того чтобы говорить как этого можно добиться. Но причём здесь циклы, спросите вы? Безусловно они обладают гибкостью, но эта гибкость не обходится даром. Выражения return, break, continue изменяют поведение цикла так, что помимо основной задачи разобраться в Продолжить Рейтинг: 1 (Против: 1 | За: 2) Добавлено: 20.01.2015 от Ксакеп Комментарии (2) Mockito и Behavior Driven DevelopmentКогда разработчик только начинает изучать принципы тестирования, он, как правило, знакомится в первую очередь с тестированием, основывающемся на проверке данных. То есть, чтобы протестировать функцию сложения чисел разработчик пишет, например, такой тест: “Заданы числа 2 и 3, в качестве результата ожидается 5”, и по тому, выполнилось ли это утверждение или нет, он делает вывод о верной или неверной реализации тестируемой функции. Такой подход хорошо работает, когда код достаточно прост, результат предсказуем, и его проверка не займёт относительно много времени. Но на практике часто функции сложные, тяжело покрыть тестами каждый возможный исход, либо подготовка исходных или проверка конечных данных для теста занимает много времени. Можно, конечно, подумать: “Это сложно тестировать Продолжить Рейтинг: 8 (Против: 0 | За: 8) Добавлено: 20.12.2014 от Freddy Комментарии (32) Практическое введение в JCF (Java Collections Framework) на примерахВ Java предусмотрено несколько способов хранения ссылок на объекты. Встроенным типом является массив, однако, ограниченное количество объектов может не всегда подойти для вашей программы. Библиотека java.util.* содержит достаточно полный набор классов контейнеров, обладающих весьма изощрёнными возможностями. Цель данной статьи - дать основные концепции и научить применять ту, или иную реализацию при решении определённых задач. Основные интерфейсы и их реализации В библиотеке коллекций Java существует два базовых интерфейса: # Collection - определены основные методы для работы с данными # Map - описывает коллекцию, состоящую из пар (ключ-значение) Интерфейс Collection реализуют интерфейсы List, Set и Queue: # List - пронумерованная, неупорядоченная, допускающая Продолжить Рейтинг: 7 (Против: 1 | За: 8) Добавлено: 1.12.2014 от Kalter Комментарии (34) ThreadPoolExecutor в Java MEДля выполнения асинхронного кода программисту приходится создавать новый поток и переопределять метод run. Но что будет, если мы захотим выполнить 10, 100, 1000 задач? В этом случае на каждую задачу будет создан новый поток, и всё больше и больше времени система будет не на выполнение каждой задачи непосредственно, а на создание и уничтожение потоков и на переключение между ними, и таким образом мы можем потерять в производительности приложения даже больше, чем однопоточный вариант программы. Чтобы избежать подобной проблемы, используется следующая идея: пусть некий объект создаст за нас некоторое количество потоков и хранит очередь задач, Любой свободный в данный момент времени поток извлекает из очереди задачу и исполняет её; во время выполнения задачи поток считается занятым, а после завершения Продолжить Рейтинг: 9 (Против: 1 | За: 10) Добавлено: 28.11.2014 от Freddy Комментарии (19) Всего: 42
|