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

Анонс Java-конференции JPoint 2018: JDK 9, высокие нагрузки и производительность JVM - 1

Не успели еще улечься впечатления от Joker 2017, а мы уже готовим JPoint 2018. Точнее, мы начали готовить его уже пару месяцев назад, так что сегодня уже есть что анонсировать! Как видите, Java-конференции мы делаем без пауз.

Давайте посмотрим, что у нас есть:

  1. Название: Java-конференция JPoint 2018.
  2. Дата и место проведения: 6-7 апреля 2018 года, Москва, Конгресс-центр ЦМТ.
  3. 8 докладчиков уже подтвердили свое участие.
  4. Call For Papers.
  5. Выставка и стенды.
  6. Несколько тренингов.

Все подробности — под катом.
Читать полностью »

Анонс митапа ThinkJava #6, Харьков - 1

Приглашаем всех Java-разработчиков на шестую встречу ThinkJava-комьюнити! Будем говорить о разработке реактивных приложений, а перерывах — общаться на кофе-брейках и делиться впечатлениями об услышанном и собственным опытом.
Читать полностью »

Дополнение к обзору с подведением итогов конференции Joker, проходившей в Санкт-Петербурге 3-4 ноября 2017 года.

На какие темы какие доклады были на конференции, кто из спикеров принял участие, что было интересного, чем отличался этот год от предыдущих — обо всём можно прочитать дальше.

Конференция Joker 2017: удивительные истории - 1
Читать полностью »

Часто при работе с микросервисами, построенными с помощью технологии Spring Boot, можно видеть стандартный вывод ошибок подобный этому:

{
    "timestamp": 1510417124782,
    "status": 500,
    "error": "Internal Server Error",
    "exception": "com.netflix.hystrix.exception.HystrixRuntimeException",
    "message": "ApplicationRepository#save(Application) failed and no fallback available.",
    "path": "/application"
}

Такой вывод может быть излишним и ненужным клиентам вашего сервиса. Если вы хотите упростить жизнь сторонним сервисам в случае ошибки, то как раз об этом и пойдет речь в данном посте.
Читать полностью »

Инстанцируем java.lang.Class - 1

Конструктор java.lang.Class является одной из самых охраняемых сущностей в языке Java. В спецификации чётко сказано, что объекты типа Class может создавать только сама JRE и что нам тут делать нечего, но так ли это на самом деле?

Предлагаю погрузиться в глубины Reflection API (и не только) и выяснить, как там всё устроено и насколько трудно будет обойти имеющиеся ограничения.

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

в 14:37, , рубрики: java, java9, jdk9, Jigsaw, JPont2017

Всем доброго времени суток. В ноябре 2017 в Санкт-Петербурге прошло одно из самых примечательных событий года для отечественных Java-разработчиков: конференция Joker. На конференции было озвучено много тем, такие как GC, Concurrency, Spring Boot, JUnit 5 и другие, презентации по которым вы можете найти в открытом доступе на сайте конференции. Перечислять все смысла нет, так как по каждому топику можно составить отдельную статью с примерами и выдержками. Поэтому остановимся на главном.

Основной темой были нововведения в Java 9: ей посвятили аж две лекции, по модулям, и по всему остальному. Саму девятку Oracle изначально планировали выпустить еще в середине лета 2016, однако релиз был перенесен сначала на полгода, а потом и вовсе на вторую половину 2017. И вот, 21 сентября 2017, выход девятки состоялся.

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

Итак, по порядку. Как говорилось выше, нововведения в девятке можно разделить на два блока: общий и модульный. Придерживаясь хронологии Joker, начнем с первого.

1. Появление литералов в коллекциях

На самом деле литералы в коллекциях можно использовать с 7 версии, никто не запрещает выполнить следующее, если у вас установлен ProjectCoin:
Читать полностью »

Назад в будущее: как прошёл Joker 2017 - 1

Давно в Java-мире не было такого оживления, как этой осенью: наконец-то вышла «девятка», завершены и другие «долгострои» (Java EE 8, JUnit 5, Spring Framework 5), Java EE отправляется в Eclipse Foundation, коммерческие фичи Oracle JDK решено опенсорснуть, а сама Java переходит на полугодовой релизный цикл.

Как в таком урагане новостей может выглядеть Java-конференция? Надо сосредоточиться на этих новых темах, или думать о тех разработчиках, которые не то что на «девятку», а на «восьмёрку» ещё не перешли? Мы провели в Петербурге пятый по счёту Joker — и под катом подробно написали о том, как это было.
Читать полностью »

Java EE 8: краткий и весьма оптимистичный обзор новых возможностей - 1

Автор снимка — Сабине Хюрдлер / Fotolia.com

Привет!

Когда-то давно, знойным летом 2013 года вы и именно вы убедили нас взяться за работу над замечательной книгой "Изучаем Java EE 7" Энтони Гонсалвеса, которая выдержала 6 тиражей и стала настоящим бестселлером. Теперь мы всерьез рассчитываем еще до конца года приступить к работе над книгой по Java EE 8 от грамотного и симпатичного специалиста Себастьяна Дашнера.

Java EE 8: краткий и весьма оптимистичный обзор новых возможностей - 2

7 ноября господин Дашнер опубликовал статью с собственными размышлениями о перспективах и плюшках Java EE 8. Под катом вашему вниманию предлагается перевод этой статьи с немецкого языка
Читать полностью »

image

Добрый день, Хабровчане!

На собеседованиях мне довольно часто попадались вопросы про вложенные классы. Поэтому я решил разобраться в них, систематизировать свои знания, а заодно и поделиться этими знаниями с вами.

Вложенный класс (InnerClass)

public class OuterClass {
    public class InnerClass{
    }
}

Из него видны:
— все (даже private) свойства и методы OuterClassа обычные и статические.
— public и protected свойства и методы родителя OuterClassа обычные и статические. То есть те, которые видны в OuterClassе.

Его видно:
— согласно модификатору доступа.

Может наследовать:
— обычные классы.
— такие же внутренние классы в OuterClassе и его предках.

Может быть наследован:
— таким же внутренним классом в OuterClassе и его наследниках.

Может имплементировать интерфейс

Может содержать:
— только обычные свойства и методы (не статические).

Создаётся из другого класса так:

OuterClass outerClass = new OuterClass();
OuterClass.InnerClass innerClass = outerClass.new InnerClass();

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

В нашей статье Stream API & ForkJoinPool мы уже рассказывали про возможности изменять размер пула потоков, который мы можем использовать в параллельных обработчиках, использующих Stream API или Fork Join. Надеюсь эта информация вам пригодилась, когда находясь на должности Senior Java Developer, вы смогли увеличить производительность разработанной вами системы, изменив размер пула по умолчанию. Так как наши курсы, в целом, заточены на переход ступеньку выше от джуниора и миддла выше, то часть программы строится исходя из основных вопросов задаваемых на собеседованиях. Один из из которых звучит так: «У вас есть приложение. И есть задача использующая Stream API или Fork Join, которая поддается распараллеливанию. При каких условиях вы можете счесть разумным изменить размер пула потоков заданный по умолчанию? Какой размер вы предложите в этом случае?»

Можете попробовать ответить на этот вопрос сами, прежде чем читать дальше, чтобы проверить собственную готовность к подобному интервью на данный момент.

Чтобы теоретические рассуждения подкрепить настоящими цифрами предлагаем погонять небольшой бенчмарк для стандартного метода Arrays.parallelSort(), реализующего разновидность алгоритма merge sort, и исполняемого на ForkJoinPool.commonPool(). Запустим этот алгоритм на одном и том же большом массиве с различными размерами commonPool и проанализируем результаты.

Каков должен быть размер у Thread Pool? - 1
Читать полностью »


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