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

Я множество раз слышал о том, что дизайн Generic типов в Java является неудачным. По большей части претензии сводятся к отсутствию поддержки примитивных типов (которую планируют добавить) и к стиранию типов, а конкретнее — невозможности получить фактический тип параметра в рантайме. Лично я не считаю стирание типов проблемой, как и дизайн Generic-ов плохим. Но есть моменты, которые меня порядком раздражают, но при этом не так часто упоминаются.

1

Например, мы знаем, что метод Class#getAnnotation параметризован и имеет следующую сигнатуру: public <A extends Annotation> A getAnnotation(Class<A> annotationClass). Значит, можно писать вот такой код:

Deprecated d = Object.class.getAnnotation(Deprecated.class);

Тут я решаю вынести Object.class в отдельную переменную и код перестаёт компилироваться:

Class clazz = Object.class;
// incompatible types:
// java.lang.annotation.Annotation cannot be converted to java.lang.Deprecated
Deprecated d = clazz.getAnnotation(Deprecated.class);

Где я ошибся?

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

Reactive log stream processing with RxJava — Part l

В предыдущем посте автор рассматривал случаи использования ELK стека и сбора логов.
С учетом движения в сторону микросервисов и контейнеризации приложений, централизованная обработка логов и их хранение становится де-факто стандартом.

Может быть, нам стоит попробовать сделать следующий шаг и более активно использовать полученную информацию для того, чтобы находить причины ряда проблем задолго до их появления.*

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

Очередная встреча московской Java User Group прошла 22 мая 2017 года традиционно в офисе компании КРОК. На ней Никита Липский и Дмитрий Чуйко рассказали о статической (Ahead-of-Time) компиляции в языке программирования Java и её реализации в продуктах компаний Excelsior и Oracle.

Никита Липский и Дмитрий Чуйко об AOT в Java на jug.msk.ru - 1
Читать полностью »

В мае вышла новая мажорная версия Apache Ignite — распределенной платформы, оптимизированной для работы с оперативной памятью, которая объединяет в себе хранилище вида ключ-значение с SQL99-совместимой базой данных, предлагая полную ACID-совместимость, высокую доступность, а также близкое к линейному масштабирование с нескольких узлов до тысяч, которые могут размещаться на собственном оборудовании либо в облаке. Ядро Apache Ignite написано на Java, но платформа, помимо экосистемы Java, поддерживает нативную интеграцию с приложениями на .NET и C++.

Apache Ignite эластично масштабируется в рамках одного или нескольких геораспределенных кластеров, предоставляя гибко настраиваемое шардирование и автоматическую ребалансировку при динамическом добавлении или удалении узлов, обеспечивая прозрачный и быстрый доступ к данным и вычислениям путем использования собственного API либо классического SQL.

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

Забегая вперед, мы будем проводить 2 мероприятия, которые связаны с Apache Ignite, подробнее о них можно прочитать в конце статьи.

Apache Ignite 2.0 — Machine Learning, новая модель хранения данных, DDL - 1
Читать полностью »

Вам когда-нибудь приходилось писать на хорошо знакомом языке под никогда ранее невиданную платформу? Странное ощущение.
Кодабра делится опытом, как максимально быстро разобраться с незнакомым окружением и начать жить.

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

Приглашаем всех 27 мая и 1 июня на Дни открытых дверей! Из любой удобной точки мира — приходите к нам — формат проведения онлайн.

Дни открытых дверей перед запуском нового курса по Java - 1
Читать полностью »

в 18:43, , рубрики: autoboxing, java, unboxing, типы, метки:

Сегодня речь пойдет об автоупаковке (autoboxing) и распаковке (unboxing). Это одно из существенных изменений, внесенных в JDK 5. Теперь разработчики могут писать более чистый код, но непонимание работы этого механизма может привести к плохой производительности.Читать полностью »

Недавно стало известно о том, что корпорация Oracle переносит петербургский центр разработок в Индию, где будет развивать бизнес в сфере «облачных» технологий и дата-центров. Среди возможных причин упоминалось изменение политического отношения головной компании к российскому рынку, желание сэкономить на рабочей силе и даже фактор большей культурной совместимости — как известно, Читать полностью »

Пришло время анонсировать новый Joker (вообще, планировали сделать это в июне, но нас уже 150 человек просят билеты, откладывать некуда). Анонсирую:

3-4 ноября в Санкт-Петербурге пройдет Java-конференция Joker 2017. В прошлый раз мы собрали больше 1000 участников, у нас было больше 40 спикеров в 12-ти треках, которые выступали в течение 2 дней. О том, что будет в этот раз, читайте под катом.

Анонс конференции Joker 2017: День Java-единства - 1Читать полностью »

Почему следует полностью переходить на Kotlin - 1

Хочу рассказать вам о новом языке программирования, который называется Kotlin, и объяснить, почему вам стоит использовать его в своём следующем проекте. Раньше я предпочитал Java, но в последний год пишу на Kotlin везде, где только можно. И в данный момент я не представляю себе ситуации, в которой лучше было бы выбрать Java.

Kotlin разработан в JetBrains, и участие тех же людей в создании наборов IDE, таких как IntelliJ и ReSharper, хорошо заметно по самому языку. Он прагматичен и краток, благодаря чему написание кода превращается в приятный и эффективный процесс.

Хотя Kotlin компилируется в JavaScript и скоро будет компилироваться в машинный код, я сконцентрируюсь на его первичной среде — JVM.

Итак, несколько причин, почему вам следует полностью переходить на Kotlin (порядок случаен):

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


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