Обновить
128K+

Java *

Объектно-ориентированный язык программирования

158,31
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Предполагаемые принципы проектирования для Jakarta EE

Время на прочтение5 мин
Охват и читатели10K
Привет, Хабр! У нас совсем недавно вышла книга "Изучаем Java EE. Современное программирование для больших предприятий" от немецкого Java-чемпиона Себастьяна Дашнера.


Господин Дашнер активно пишет и выступает на темы, связанные с современной Java EE, поэтому в своем блоге не обошел вниманием и общие принципы проектирования для платформы Jakarta EE, ныне разрабатываемой Eclipse. Перевод именно этой статьи (июньской) мы сегодня предлагаем вашему вниманию.
Читать дальше →

Как не сломать кластер Apache Ignite с самого начала

Время на прочтение11 мин
Охват и читатели13K

Привет! Ниже — расшифровка видеозаписи выступления на митапе Apache Ignite сообщества в Петербурге 20 июня. Загрузить слайды можно по ссылке.



Есть целый класс проблем, с которыми сталкиваются начинающие пользователи. Они только что скачали себе Apache Ignite, запускают первые два-три-десять раз, и приходят к нам с вопросами, которые решаются схожим образом. Поэтому предлагаю создать чек-лист, который сэкономит вам много времени и нервов, когда вы делаете свои первые приложения на Apache Ignite. Мы поговорим о подготовке к запуску; как сделать так, чтобы кластер собрался; как запустить какие-нибудь вычисления в Compute Grid; как подготовить модель данных и код, чтобы можно было записать в Ignite свои данные и потом их успешно прочитать. И главное: как ничего не сломать с самого начала.

Летний митап Apache Ignite в Москве

Время на прочтение1 мин
Охват и читатели1.3K


Приглашаем вас на московский летний митап, посвящённый Apache Ignite. Присоединяйтесь к встрече пользователей и разработчиков. В этот раз, как заказывали, покажем примеры кода, много примеров.

10 июля (вторник), Москва

Читать дальше →

Сортировки вставками

Время на прочтение7 мин
Охват и читатели225K


Общая суть сортировок вставками такова:

  1. Перебираются элементы в неотсортированной части массива.
  2. Каждый элемент вставляется в отсортированную часть массива на то место, где он должен находиться.

Траффик

B+ дерево в реальном проекте

Время на прочтение11 мин
Охват и читатели18K

В этой статье мы подробно рассмотрим, как сделано B+ дерево в распределенной БД Apache Ignite.


Читать дальше →

Топ-10: лучшие доклады Joker 2017

Время на прочтение7 мин
Охват и читатели12K


Недавно мы открыли для всех видеозаписи докладов Joker 2017. А когда в публичный доступ попадают сразу сорок Java-докладов, в чём тут может быть проблема? В том, что глаза разбегаются! Когда столько всего, непонятно, на что обратить внимание в первую очередь.

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

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

Форматирование чисел в Java: DecimalFormat

Время на прочтение8 мин
Охват и читатели35K
Всем привет! Что ж, курс «Разработчик Java» в своём новом формате вполне себе стартует сегодня, мы готовим теперь к следующему запуску новый формат полезностей, которые будут делиться на разные уровни и дорабатываться под разные запросы. А пока глянем на то что у нас осталось из наших запасов и посмотрим на использование DecimalFormat для контроля представления чисел

Поехали.

Весь код, предоставленный ниже, показывает, что инстансы, которые возвращает “getInstance” NumberFormat, на самом деле являются инстансами DecimalFormat. От аналогичных инстансов класса DecimalFormat их отличают настройки атрибутов, например, минимум/максимум целых значений (слева от десятичной точки) и минимум/максимум дробных значений (справа от десятичной точки). Все они имеют одинаковый режим округления и настройки валют.

Читать дальше →

Как перестать бояться Proguard и начать жить

Время на прочтение12 мин
Охват и читатели71K


Здравствуйте, я Android разработчик и я больше не боюсь ProGuard...


Обычно, об этой утилите вспоминают, когда сталкиваются с dalvik dex-limit issue или с требованием улучшить безопасность приложения. К сожалению, правильно настроить Proguard удается далеко не с первого раза. Я часто наблюдал, как многие, сломав проект, выключают Proguard и включают поддержку Mulditex и каждый раз немножечко грустил по этому поводу, ведь Proguard помогает как сократить размер приложения, так и повысить его производительность.


В итоге, я решил написать статью, в которую смогу поместить всю полезную информацию, которую я узнал за несколько лет работы с Proguard и которая могла бы помочь как совсем новичкам, так и тем, кто уже что-то знает.

Читать дальше →

Обучение программированию с азов

Время на прочтение5 мин
Охват и читатели54K
Подрастающий в семье ребёнок рано или поздно начнёт приставать к папе или маме, занимающемся программированием дома:

– А что это ты делаешь?
– А что значит это слово?
– А почему здесь зелёненькие буквы, а здесь синенькие?
И обязательно придёт к главному вопросу:
– А ты научишь меня программировать?

Мне этот вопрос тоже был задан. Я оказался не готов к ответу. И начал размышлять над проблемой. Как приобщить ребёнка (около десяти лет) к этому интересному и увлекательному занятию?

Далее некоторые мысли на эту тему и к чему они меня привели…
Читать дальше →

Открытый урок «Многопоточность в Java. Базовые примитивы синхронизации»

Время на прочтение1 мин
Охват и читатели10K
Всем привет!

Делимся с вами очередным открытым вебинаром, который проводили в рамках нашего курса «Разработчик Java». На уроке преподаватель курса Сергей Петрелевич разбирал основные проблемы разработки многопоточных программ, средства работы с потоками в JVM.


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

История одного SSL рукопожатия

Время на прочтение5 мин
Охват и читатели19K
Привет, Хабр!

Недавно мне пришлось прикручивать SSL с двухсторонней аутентификацией (mutual authentication) к Spring Reactive Webclient. Казалось бы, дело нехитрое, но вылилось оно в блуждание в исходниках JDK с неожиданным финалом. Опыта набралось на целую статью, которая может оказаться полезной инженерам в повседневных задачах или при подготовке к собеседованию.

Читать дальше →

Создание шаблонов в IDE от Jetbrains

Время на прочтение4 мин
Охват и читатели27K

Вступление


Сегодня я хочу привести небольшой обзор-туториал темплейтов в ИСР от Jetbrains. Приведенные ниже примеры будут реализованы на Java в Intellij IDEA, но механизм создания одинаков и для других языков и продуктов компании. Думаю все программирующие в данной IDE пользовались встроенными шаблонами. Например когда вы пишете fori, нажимаете TAB или ENTER и у вас появляется цикл for в котором нужно указать имя переменной и условие, а остальной код генерируется за вас.

for (int i = 0; i < ; i++) {   
                               
}    

Или же знакомый всем java-программистам sout -> System.out.println(). Так вот, в Intellij есть поддержка создания своих шаблонов кода. На удивление не нашёл практически никакой инфы на русском и довольно мало на английском(благо есть неплохая документация) когда наткнулся на эту фичу, хотя это сильно ускоряет и помогает в разработке. И сейчас когда дошли руки решил написать небольшую статью об этом. Возможно опытным программистам она мало чем поможет, они и сами смогут разобраться во всём или же уже давно это юзают, но для всех остальных считаю вполне подойдёт. Итак приступим.
Читать дальше →

ActionViews или как я не люблю boilerplate с самого детства

Время на прочтение8 мин
Охват и читатели5.6K

Привет, Хабр! В данной статье я хочу поделиться опытом создания своего механизма для автоматизации показа различных View типа: ContentView, LoadingView, NoInternetView, EmptyContentView, ErrorView.


Читать дальше →

Ближайшие события

Конкуренция в сервлетах

Время на прочтение4 мин
Охват и читатели6.8K
Всем привет!

Мы запускаем седьмой поток курса «Разработчик Java». Больше, чем за год существования этого курса он дорабатывался, оттачивался, добавлялось новое, что выходило за это время. Этот же поток отличается от остальных тем, что мы ввели новую систему ступеней разбив курс на три части и чуть увеличив его общую длительность. Так что теперь не надо будет выбиваться из сил пять месяцев подряд для получения сертификата, а спокойно выбрать периоды по два месяца и пройти обучения. Но это лирика, вернёмся к нашей традиции о разных полезностях предшествующих запуску курса.

Поехали.

1. Обзор


Контейнер Java-сервлетов (или веб-сервер) многопоточен: одновременно может выполняться несколько запросов к одному сервлету. Поэтому при написании сервлета необходимо учитывать конкуренцию.

Как мы уже говорили ранее, создается один и только один экземпляр сервлета, и для каждого нового запроса Servlet Container создает новый поток для выполнения doGet() или doPost() методов сервлета.

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

2. Обзор потоков


Читать дальше →

Consulo UI API от идеи до прототипа

Время на прочтение6 мин
Охват и читатели4K

Всем привет, давно я не писал статьи о жизни проекта на хабре, решил исправиться и начну пожалуй с того над чем сейчас работаю а именно Consulo UI API.


Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку .NET(C#), Java
Читать дальше →

Аннотации времени компиляции на примере @Implement

Время на прочтение11 мин
Охват и читатели11K


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

Открытый урок «Веб-приложения и микросервисы на Spring Boot 2.0»

Время на прочтение1 мин
Охват и читатели6.9K
Всем привет!

На прошлой неделе провели открытый урок по курсу «Разработчик на Spring Framework», где преподаватель Юрий Дворжецкий знакомил с возможностями Spring Boot 2.0, рассказывал и показывал разработку веб-приложений с его помощью и разобрал работу Spring Boot Actuator.


Как всегда ждём вопросы, предложения и прочие тапки :)

Разработка нового статического анализатора: PVS-Studio Java

Время на прочтение19 мин
Охват и читатели19K

Picture 3

Статический анализатор PVS-Studio известен в мире C, C++ и C# как инструмент для выявления ошибок и потенциальных уязвимостей. Однако у нас мало клиентов из финансового сектора, так как выяснилось, что сейчас там востребованы Java и IBM RPG(!). Нам же всегда хотелось стать ближе к миру Enterprise, поэтому, после некоторых раздумий, мы приняли решение заняться созданием Java анализатора.
Читать дальше →

25 занимательных Android библиотек. Весна 2018

Время на прочтение5 мин
Охват и читатели20K
Это список из 25 новейших Android-библиотек, проектов и инструментов, выпущенных за последние 3 месяца. Здесь нет первого и последнего места, это просто список интересных библиотек. Они определённо заслуживают вашего внимания. Наслаждайтесь!


Читать дальше →

Как у меня сломался String.getBytes(UTF_8) и что я с этим делал

Время на прочтение6 мин
Охват и читатели15K
(спойлер) дебажил, дизасемблил и пришел к выводу что проблема в SSE инструкциях

Привет, Хабр!

Все началось с того что я писал Load тест на Java для внутреннего компонента системы над которой сейчас работаю. Тест создавал несколько потоков и пытался что-то выполнить очень много раз. В процессе выполнения иногда появлялись java.lang.ArrayIndexOutOfBoundsException: 0 ошибки на строчке очень похожей на эту:

"test".getBytes(StandardCharsets.UTF_8)
Читать дальше →