Рубрика «java» - 155

Основной принцип программирования гласит: не изобретать велосипед. Но иногда, чтобы понять, что происходит и как использовать инструмент неправильно, нам нужно это сделать. Сегодня изобретаем паттерн многопоточного выполнения задач.

Представим, что у вас которая вызывает большую загрузку процессора:

public class Counter {

    public Double count(double a) {
        for (int i = 0; i < 1000000; i++) {
            a = a + Math.tan(a);
        }

        return a;
    }
}

Мы хотим как можно быстрее обработать ряд таких задач, попробуем*:

Читать полностью »

Вернувшись с JPoint 2017, где с огромнейшим удовольствием пообщался с большим числом мегакрутых программистов решил надеть шляпу и покопаться в разного рода оптимизациях.

https://xkcd.com/1781/

Читать полностью »

От переводчика:
Ниже приводится перевод с немецкого презабавного интервью с Фредериком Эбельсхойзером, где он раскрывает отношение компании Yatta к недавно вышедшему JetBrains Toolbox.

image

Создатели IntelliJ IDEA опубликовали приложение JetBrains Toolbox для сборки и настройки продуктов JetBrains. Аналогом для Eclipse является Yatta Launcher. Мы (автор текста, JAXenter — прим.пер.) побеседовали с Фредериком Эбельсхойзером (Yatta) о сходстве этих двух инструментов и о давнем соперничестве между Eclipse и IntelliJ.

JAXenter: JetBrains недавно выпустила свой «Toolbox». Вы, в свою очередь, стартовали с Yatta Launcher — аналогичным проектом для Eclipse. Можно ли, на ваш взгляд, провести параллель между этими двумя инструментами?

Читать полностью »

В этой статье мы хотели бы поделиться опытом использования набирающей популярность библиотеки для хранения данных — Realm. Перед любым проектом вначале разработки встает вопрос что использовать для хранения данных — что-то проверенное или попробовать инструменты из разряда для хипстеров.

image

Мы — небольшой стартап, разрабатывающий детский лаунчер. Хотя мы стартап и у нас небольшая команда, но большое внимание мы уделяем качеству кода. За два года разработки довольно сильно менялись требования, функционал и выбранные нами технологии. Вплоть до того, что мы перешли с полностью нативного приложения на гибридное, на основе Cordova. Также, одним из этих изменений стал переход с BaaS от Facebook'а Parse на Realm. В этой статье мы хотим рассказать о проблемах, с которыми мы столкнулись при переходе на Realm и стоит ли пробовать новые библиотеки, если со старыми уже "подружились".Читать полностью »

Вереница фреймворков и библиотек по очереди восседающих на троне трендов JavaScript мира это уже не новость. Разработчики из других областей даже подшучивают над нами на этот счет.

Вот и мне, в процессе работы, пришлось попрыгать по различным библиотекам и фреймворкам — qooxdoo, jQuery, Ext JS, Backbone.js, Knockout.js, Ember.js, Angular, React.

Не всегда выбор того или иного фреймворка был добровольный, модель outsource и outstaffing накладывает определенные ограничения на мою работу. Я думаю люди из этой же области поймут меня.
Читать полностью »

Доброго времени суток всем!

В этой статье будет описываться создание 2D игры на Java. Сразу предупреждаю, вы должны хотя бы базово знать язык Java, поскольку на подробное объяснение каждой строки у меня нету времени. И очень прошу вас, не списывать просто код, а пытаться понять что означает каждая строка, и писать со смыслом. И еще, я использую Eclipse, но вы можете использовать любой IDE.

Задача:

Я планирую создать игру, напоминающую шутер с видом от 3 лица.

Начало:

Ну что, приступим!

Для начала создадим проект. Назовем его «Just game». И сразу создаем класс Display.java. В него пишем:

public static void main(String[] args) {
		JFrame frame = new JFrame(/* название нашей игры */);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		frame.setUndecorated(true);
		frame.setVisible(true);
	}

Теперь разберемся, что мы сделали.
Читать полностью »

В Java 8 появился новый класс CompletableFuture, который позволяет удобно писать асинхронный код.
При использовании CompletableFuture из нескольких потоков я столкнулся с его неочевидным поведением, а именно с тем, что callbacks на нём могут выполнятся совсем не в тех потоках, как ожидалось. Об этом и о том, как мне удалось решить проблему — я и расскажу в этой статье.

Мною разрабатывался асинхронный, неблокирующийся однопоточный клиент к серверу, который использовал потоконебезопасные структуры данных. Тесты проходили без проблем, но benchmarks иногда падали c ConcurrentModificationException на внутренних структурах однопоточного клиента.
Читать полностью »

Научно технический прогресс постепенный по своей природе. Никто не берет горсть песка с пляжа и делает из нее компьютер. Мы берем грубые инструменты и создаем с помощью них более качественные. Затем с помощью последних еще более точные и так далее. Каждое малое усовершенствование — это ступенька прогресса и все они должны быть пройдены.

Председатель Шенчжи Ян.

image
В сознании каждого человека есть одна простая мысль: космические технологии — это сложно. На самом деле это не так. Не все технологии, применимые в космической отрасли — это Rocket science. И последние успехи в космонавтике, ренессанс космической тематики сподвигли меня на поиск проблемных областей, которые простой Enterprise Java разработчик может улучшить.
Читать полностью »

Всем привет! В прошлом году на Joker 2016 мы делали открытую трансляцию главного зала. В тот раз не обошлось без технических заминок, но в целом зашло хорошо. Мы решили продолжать славную традицию и сделать это еще раз – сегодня с 10 утра мы начинаем бесплатную YouTube-трансляцию первого трека JPoint 2017! Первый трек – самый большой и хардкорный, будут доклады Алексея Шипилёва, Евгения EvgenyBorisov Борисова, Arun Gupta, Сергея Walrus Куксенко и не только

Бесплатная трансляция главного трека JPoint 2017. Сейчас! Без регистрации и смс - 1

Если кто не в курсе, вчера успешно прошел первый день международной Java-конференции JPoint 2017: 1200 участников, 25 докладчиков, 20 докладов, 4 трека, – все серьезно. Но пост будет не о прошедшей конференции, а о том, что нам (и некоторым из вас) еще предстоит.

Под катом – список докладов и ссылка на YouTube.
Читать полностью »

Пишите на Java и ждёте асинхронные вызовы API прямо во фрагменте или Activity? Используя анонимные классы? В этой статье я расскажу, как Kotlin позволяет это сделать без вреда для GC и возможных IllegalStateException.

image

В данной статье приведёна работа со слабыми ссылками на примере ожидания асинхронных вызовов из компонентов Android приложения. Однако данный опыт применим и для других ситуаций, когда требуется использовать слабые ссылки.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js