Данная статья является продолжением предыдущей статьи о распознавании простых многоугольников по нарисованной линии. В данной части будут рассмотрены алгоритмы распознавания эллипсов и алгоритм распознавания невыпуклых многоугольников.
Рубрика «java» - 30
Распознаем фигуры по массиву точек: эллипсы и не выпуклые фигуры
2022-01-06 в 19:09, admin, рубрики: java, алгоритм, Алгоритмы, круг, массив, многоугольник, ненормальное программирование, распознавание, Точка, фигуры, эллипс«Невозможный» параллельный алгоритм неотрицательной суммы
2022-01-02 в 7:02, admin, рубрики: forkjoin, haskell, java, java streams, MapReduce, sql, sum, ассоциативность, магия, моноид, параллельное программирование, параллельные вычисления, ПрограммированиеСумма целых чисел — что может быть проще? Сумма есть в SQL, в Java Stream API… в крайнем случае напишем сами. Как и всякая абстракция, она расходится с реальностью.
Вот счёт клиента в банке, по нему движения — положительные пополнения и отрицательные списания — в сумме дают текущий баланс. Так сумма работает в идеальном мире. А в реальности при большом минусе банк с отсрочкой, но предпримет нетривиальные действия вплоть до обращения в суд, чтобы закрыть финансовую брешь.
static long usualSum(LongStream changes) {
return changes.reduce(0, (a, b) -> a + b);
}
Java: делаем Valhalla сами
2021-12-31 в 20:00, admin, рубрики: java, ram, valhalla-like, оптимизация, ПрограммированиеИдея
В Java каждый объект - это заголовок и данные. В случае 64 битной машины заголовок равен 16 байтам. Также Java использует выравнивание объектов в памяти по 8 байт, следовательно размер объекта кратен 8 байтам. Поэтому обёртки примитивных типов такие как Integer, Double занимают по 24 байта, что весьма затратно для примитивных типов.
Проблема
Объекты в Java располагаются в куче, ссылки на них лежат в List<?>, в результате для int мы получаем 28 байт (если используется сокращение ссылок) вместо 4 и возможный разброс адресов объектов по памяти.
Создание Native Images со Spring Native и GraalVM
2021-12-30 в 8:00, admin, рубрики: devops, java, kotlin, spring, Блог компании ДомКлик, микросервисыПривет! Меня зовут Антон Богомазов, я backend-разработчик в продуктовой команде Домклик. Наш проект представляет собой более десяти Kotlin/Spring-микросервисов, развернутых в Kubernetes, и постоянно растет, поэтому мы неизбежно сталкиваемся с растущим потреблением ресурсов кластера. Это обстоятельство и подтолкнуло меня к поиску технологий, позволяющих оптимизировать расходы на содержание наших сервисов.
В этой статье я хочу исследовать возможности технологии Java Native Image, поделиться опытом взаимодействия с ней и со средствами Spring для генерации нативных образов.
Разбираем Log4j уязвимость в деталях… с примерами и кодом
2021-12-26 в 18:45, admin, рубрики: java, log4j, информационная безопасность, Серверное администрированиеЧто-то пошло не так
Думаю все слышали про критическую уязвимость в Log4j, которая существует уже не один десяток лет, но была обнаружена совсем недавно. В итоге ей присвоили самый высокий критический статус CVE-2021-44228 и многие компании, включая Microsoft, Amazon и IBM признали, что некоторые их сервисы подвержены этой уязвимости. Ее суть в том, что Log4j позволяет выполнить любой вредоносный код на сервере при помощи Java Naming and Directory Interface (JNDI)Читать полностью »
Code Review. 80 lvl
2021-12-04 в 7:43, admin, рубрики: code review, java, код, практика программирования, Программирование, Совершенный код, управление разработкой, чистый код, эффективностьЛюбой программный продукт, будь то веб-сайт или мобильное приложение, основан на коде. Чем согласованнее и целостнее эта база, тем удобнее с ней будет работать, например, при необходимости доработки проекта, передачи на сопровождение другой команде.
Основными критериями качественного кода являются следующие: простота восприятия, гибкость для модификаций, возможность обновления, понятность, тестируемостьЧитать полностью »
Senior Java Developer — как проходят собеседования
2021-11-20 в 15:32, admin, рубрики: java, Senior Developer, Карьера в IT-индустрии, собеседованияЯ прошел за свою деятельность больше 100 собеседований на позиции Senior Java Developer, и скажу я вам, накопилось много интересных моментов, которыми и хочется поделиться.
К слову, я не махровый кодер, в разработке около 5 лет, на позиции Senior всего 2,5 года. Понятие о Senior у всех разное, но в моей конторе, я именно Senior и в предыдущей тоже таковым обзывался. Но это не исключает того, что я могу быть неопытным мидл разработчиком с ЧСВ от архитектора, который накидал однобокий и токсичный текст 😊
Прежде всего, цель статьи выплеснуть накопившиеся эмоции. Да вот так просто.
Что полезно знать Java-разработчику про вывод типов
2021-11-13 в 14:26, admin, рубрики: generic, java, вывод типов, компилятор, лямбды, портал в ад, Программирование
В Java 8 кардинально переработали процедуру вывода типов выражений. В спецификации появилась целая новая глава на эту тему. Это весьма сложная штука, изложенная скорее на языке алгебры, чем на языке нормальных людей. Не каждый программист готов в этом разобраться. Я, разработчик IDE, которому приходилось ковыряться в соответствующем коде, к своему стыду тоже довольно плохо разбираюсь в этой теме и понимаю процесс только по верхам. Причём сложно не только мне, но и авторам компилятора Java. После выхода Java 8 обнаружились десятки багов, когда поведение компилятора не соответствовало спецификации, либо текст спецификации был неоднозначен. В средах разработки для Java ситуация обстояла не лучше: там тоже были баги, причём другие, поэтому код мог отображаться ошибочным в вашей IDE, но успешно компилироваться. Или наоборот. С годами ситуация улучшилась, многие баги исправили, хотя всё ещё в спецификации остались тёмные углы.
Чаты на вебсокетах. Теперь про бэкенд
2021-11-02 в 16:02, admin, рубрики: java, kotlin, kotlin jvm, sendbird, wamp, websockets, Блог компании FunCorp, бэкенд, вебсокет, разработка мобильных приложений, чаты
Продолжаем рассказывать про чаты на вебсокетах, но уже со стороны бэкенда. Когда-то использовали сторонний сервис, но было важно решить ряд моментов, которые он не мог покрыть. Выбирать особо не пришлось, и мы принялись разрабатывать собственное решение.
Joker 2021: прошедшая Java-конференция и общая статистика
2021-10-30 в 18:33, admin, рубрики: jacoco, java, joker, jpa, jug.ru, kotlin, neo4j, olap, quarkus, scala, spring, конференцииОбзор рассказывает об увиденных и услышанных докладах, о полученных при этом впечатлениях и о произошедших изменениях в проведении конференции формата онлайн.
Читать полностью »

