Обновить
128K+

Java *

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

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

Пробуем улучшенный оператор instanceof в Java 14

Время на прочтение6 мин
Охват и читатели30K
Не за горами новая, 14-я версия Java, а значит самое время посмотреть, какие новые синтаксические возможности будет содержать эта версия Java. Одной из таких синтаксических возможностей является паттерн-матчинг по типу, который будет осуществляться посредством улучшенного (расширенного) оператора instanceof.

Сегодня я хотел бы поиграться с этим новым оператором и рассмотреть особенности его работы более детально. Так как паттерн-матчинг по типу ещё не вошёл в главный репозиторий JDK, мне пришлось скачать репозиторий проекта Amber, в котором ведётся разработка новых синтаксических конструкций Java, и собрать JDK из этого репозитория.
Читать дальше →

Учебник по JavaFX: расширенные макеты

Время на прочтение6 мин
Охват и читатели23K
Как организовать и разместить GUI компоненты в приложении JavaFX, используя расширенные макеты.

В предыдущей статье мы рассмотрели некоторые основные макеты JavaFX. Теперь пришло время рассмотреть остальные имеющийся макеты.

  1. Учебник по JavaFX: начало работы
  2. Учебник по JavaFX: Hello world!
  3. Учебник по JavaFX: FXML и SceneBuilder
  4. Учебник по JavaFX: основные макеты
  5. Учебник по JavaFX: расширенные макеты
  6. Учебник по JavaFX: CSS стилизация
  7. JavaFX Weaver: интеграция JavaFX и Spring Boot приложения
Читать дальше →

Huawei Cloud: в PVS-Studio сегодня облачно

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

Picture 2

В нынешний век каждый уже слышал об облачных сервисах. Многие компании освоили этот сегмент рынка и создали свои облачные сервисы самых различных направлений. Наша команда также в последнее время интересуется этими сервисами с точки зрения интеграции с ними анализатора кода PVS-Studio. Думаем, наши постоянные читатели уже догадываются, проект какого типа мы проверим в этот раз. Выбор пал на код облачных сервисов компании Huawei.
Читать дальше →

Модель приложения (Avalanche — application framework for Java)

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

Модель приложения (Avalanche — application framework for Java)


«Avalanche — application framework for Java» — реализация технологии стирающей различия
между вызовами локального и удаленного кода. Отказоустойчивость, масштабируемость,
модифицируемость, непрерывная доступность идут в комплекте приятными бонусами.


Рассмотренная в этой статье модель приложения родилась на основании собственного опыта реализации и эксплуатации различных интеграционных взаимодействий информационных систем (ИС) и прежде всего была направлена на сокращение использования различных ресурсов (финансовых, трудовых, временных и т.д.) при реализации этих интеграционных решений.

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

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

Теория программирования: Вариантность

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

Здравствуйте, меня зовут Дмитрий Карловский и я… хочу поведать вам о фундаментальной особенности систем типов, которую зачастую или вообще не понимают или понимают не правильно через призму реализации конкретного языка, который ввиду эволюционного развития имеет много атавизмов. Поэтому, даже если вы думаете, что знаете, что такое "вариантность", постарайтесь взглянуть на проблематику свежим взглядом. Начнём мы с самых основ, так что даже новичок всё поймёт. А продолжим без воды, чтобы даже профи было полезно для структурирования своих знаний. Примеры кода будут на псевдоязыке похожем на TypeScript. Потом будут разобраны подходы уже нескольких реальных языков. А если же вы разрабатываете свой язык, то данная статья поможет вам не наступить на чужие грабли.


а вдруг там лис?

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

Как написать простой калькулятор клиент-сервер (JavaFX+EJB+WildFly)

Время на прочтение8 мин
Охват и читатели9.6K
Итак, допустим, мы хотим реализовать клиент-серверное приложение, где на стороне клиента будут формироваться нужные данные, а на стороне сервера будет производится расчет и возвращаться клиенту в виде результата. Если брать в расчет простой калькулятор (давайте сделаем его еще проще, 4 оператора, операнды без дробей и работа по схеме [операнд1] [оператор] [операнд2] [результат]) и, допустим, реализовать его на каком-нибудь ЯП (язык программирования), например, Java, с использование сервера приложения (допустим WildFly/JBoss)+клиента (можно взять на вооружение JavaFX), то можно это сделать следующим способом:

Этот же вариант можно решить с использованием RMI (Remote Method Invocation) без сервера, клиента GUI и EJB, в консоли, но этот вариант рассматривать не будем, а приступим к более интересной реализации.

1. Нам понадобятся следующие ингредиенты:
1.1. JDK,
1.2. IDE (с поддержкой Java EE),
1.3. WildFly (или другой сервер приложений для Java),
1.4. SceneBuilder (для удобства и быстрого создания GUI).

Для связи клиента с сервером будем использовать JNDI (служба именования и каталогов), используя EJB (фреймворк для построения бизнес-логики).

2. Создаем реализацию серверной части:
2.1. Удаленный интерфейс, посредством которого будет происходить связь между клиентов и сервером (используем аннотацию Remote — компонент EJB будет использовать RMI).
Читать дальше →

Как стать Java-разработчиком? А может быть, выбрать Python?

Время на прочтение5 мин
Охват и читатели15K
Здравствуй, Habr!

Недавно нашел хорошую статью про то, как стать Java-разработчиком «How to Become A Successful Java Developer?» автора AakashSingh_17. И вот хочу поделиться с вами переводом. Однако я вижу, сколько молодых разработчиков выбирают Python как первый язык — по причине объективных преимуществ и связанных с этим языком мифов. Поэтому я добавил анализ этого языка, чтобы новички могли сравнить и сориентироваться — а что лучше выбрать в 2019 году (на самом деле, уже в 2020).

А может быть и Java?


Сегодня существует множество языков программирования, которые будут формировать наше будущее. Однако, большинство людей, начинающих изучать программирование, начинают с языка C, а затем переходят к C++ или одному из многих других языков программирования. Но сегодня мы рассмотрим самый популярный язык программирования — Java. Популярность Java можно объяснить его универсальностью, поскольку он может быть использован для разработки индивидуальных приложений, которые являются легкими и быстрыми и служат для различных целей.
Читать дальше →

Первое приложение (Avalanche — application framework for Java)

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

Первое приложение (Avalanche — application framework for Java)


"Avalanche — application framework for Java" — реализация технологии стирающей различия между
вызовами локального и удаленного кода. Отказоустойчивость, масштабируемость,
модифицируемость, непрерывная доступность идут в комплекте приятными бонусами.


Все языки программирования предлагают для начала написать простую программу вывода
сообщения "Hello world". Этот пример не подходит для демонстрации функциональных
возможностей "Avalanche — application framework for Java", так как вызов этого примера всегда
возвращает одну и ту же строку и не позволяет идентифицировать источник, возвративший этот
результат.


Для первого приложения потребуется реализовать два класса (функцию и приложение), один
интерфейс (адаптер функции) и одну JSP страницу для отображения результата. Разработанное
приложение будет выполняться под управлением Tomcat.


Реализация класса функции — DemoFunction


В классе реализации функции нет ничего особенного, это обычный класс Java. В качестве
класса функции может быть использован любой класс. Пусть демонстрационный класс функции
возвращает следующую информацию из операционной системы: PID процесса и имя сервера;
версия операционной системы; название операционной системы.

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

Является ли Java лучшим языком программирования для начинающих?

Время на прочтение5 мин
Охват и читатели45K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Is Java The Best Programming language to Learn First?» автора Javin Paul.

image

Часто получаю вопросы, вроде: «Какой язык программирования изучить первым?», «Java-тот самый язык программирования, на котором стоит начать писать?», «Насколько Java хорош в качестве первого языка программирования?», «Который из языков программирования самый подходящий для начинающих?» или «Начать с Java или Python?».

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

По моему мнению, самая веская причина начала программирования на Java или выбора его в качестве первого языка – Java освоить проще.
Читать дальше →

Вкалывают роботы — счастлив человек

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

Позабыты хлопоты,
Остановлен бег,
Вкалывают роботы,
Счастлив человек!


Из фильма "Детство Терминатора" "Приключения Электроника"


Привет, сегодня мы снова поговорим о производительности. О производительности труда разработчиков.


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

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

Иван Осипов и Юрий Артамонов про Kotlin и плагины к IntelliJ IDEA на встрече jug.msk.ru

Время на прочтение2 мин
Охват и читатели2.9K
14 ноября 2019 года на встрече московского сообщества Java-разработчиков jug.msk.ru Иван Осипов и Юрий Артамонов представили доклады про миграцию приложений с Java на Kotlin и про написание плагинов для IntelliJ IDEA.


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

Gorp.NET – новая библиотека для создания реверсивных шаблонов с целью извлечения данных из структурированного текста

Время на прочтение10 мин
Охват и читатели3.3K
Gorp.NET – новая библиотека для создания реверсивных шаблонов с целью извлечения данных из структурированного текста, основанная на имеющейся кодовой базе Salesforce Gorp.
Читать дальше →

Место enum в современном изменчивом мире

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

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


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

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

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

Атакуем Joker 2019 полностью: как прошла самая крупная Java-конференция в России

Время на прочтение5 мин
Охват и читатели5.4K
В октябре я далеко не впервые загрузился в самолет и отправился из далекого Иркутска в направлении Санкт-Петербурга. На Java-конференциях JUG Ru Group я оказывался и раньше, но всё равно не ожидал, что в этот раз будет побит рекорд, и в «Экспофоруме» соберутся более двух тысяч Java-программистов и им сочувствующих. Хардкор, угар, инженерные доклады, розыгрыши и запись видео-шоу в прямом эфире окружали нас два дня. Сразу оговорюсь, что на хабре уже писали про Joker 2019, например: dbelob — «Joker 2019: триумф года», gayka_m8 — «Чем нам запомнилась последняя JokerConf». Но теперь доступны финальные фоточки, посчитаны зрительские оценки и улеглись эмоции, поэтому мои впечатления от конференции — под катом.


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

Учебник по JavaFX: основные макеты

Время на прочтение5 мин
Охват и читатели32K
Перевод статьи «JavaFX Tutorial: Basic layouts» автора Vojtech Ruzicka.

Как организовать и разместить GUI компоненты в приложении JavaFX.

Это четвертая статья в серии о JavaFX. В предыдущей статье я описал, как использовать FXML и SceneBuilder для создания вашего пользовательского интерфейса. Теперь мы рассмотрим макеты.

Все посты в серии о JavaFX:

  1. Учебник по JavaFX: начало работы
  2. Учебник по JavaFX: Привет, мир!
  3. Учебник по JavaFX: FXML и SceneBuilder
  4. Учебник по JavaFX: основные макеты
  5. Учебник по JavaFX: расширенные макеты
  6. Учебник по JavaFX: CSS стилизация
  7. JavaFX Weaver: интеграция JavaFX и Spring Boot приложения
Читать дальше →

Синхронный Запрос-Ответ с использованием Apache Kafka

Время на прочтение11 мин
Охват и читатели38K
Архитектуры, управляемые событиями (Event Driven Architecture), в целом, и Apache Kafka, в частности, привлекли в последнее время большое внимание. Для реализации всех преимуществ архитектуры, управляемой событиями, механизм делегирования событий должен быть по своей сути асинхронным. Тем не менее, могут существовать некоторые особые сценарии/потоки использования, в которых требуется семантика Синхронного Запроса-Ответа. В этом выпуске показано, как реализовать "Запрос-Ответ" с помощью Apache Kafka.

Перевел @middle_java
Читать дальше →

Почему следует избегать использования исключений в управлении вашим потоком в Java

Время на прочтение3 мин
Охват и читатели6.4K
Java — это универсальный язык программирования, имеющий много альтернативных решений для ваших определённых задач. Тем не менее, существуют хорошие подходы, которым следует следовать, и также существуют некоторые неудачные подходы, которые мы до сих пор в большинстве своём используем.

Один из наиболее распространённых неудачных подходов — это использование исключений для контроля потока выполнения. Этого следует избегать по двум причинам:

  1. Это снижает производительность и быстродействие вашего кода
  2. Это делает ваш код менее читаемым
Читать дальше →

Структуры данных в Java. Полезные методы вспомогательных классов

Время на прочтение7 мин
Охват и читатели39K
Привет, habr!

Я Software Engineer в EPAM. Более 8 лет я работаю с legacy-кодом, написанном на языке Java (предвосхищая комментарии, отмечу, что понимание и терпимость к legacy началась задолго до EPAM, в заключении вы найдёте ответ, почему). Часто в работе я сталкивался с одними и теми же повторяющимися недочетами. Это побудило меня написать заметку, и начать я хочу со структур данных и вспомогательных классов Collections и Arrays. Почему-то некоторые разработчики пренебрегают их использованием, и напрасно

Разработчику на Java часто приходится сталкиваться с различными структурами данных. Это могут быть массивы, всевозможные коллекции или реализации Map. Казалось бы, всё с ними ясно и понятно, но существует несколько мелочей, о которые легко споткнуться.

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

Добавление Quartz в Spring Boot

Время на прочтение9 мин
Охват и читатели37K
И снова здравствуйте. Специально для студентов курса «Разработчик на Spring Framework» подготовили перевод интересной статьи.




В моей статье «Specifications to the Rescue» я показал как можно использовать JPA Specification в Spring Boot для реализации фильтрации в RESTful API. Затем в статье «Testing those Specifications» было показано как протестировать эти самые спецификации.

Следующим шагом я решил продемонстрировать, как добавить планировщик заданий в это же приложение Spring Boot.
Читать дальше →

JDBC-пулы и эффективная работа с файлами: Java-митап 3 декабря в Петербурге

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


Приглашаем вас на Java митап о перфомансе, который пройдет 3 декабря в питерском офисе Wrike. Поговорим о низкоуровневых, но важных для разработчиков любого уровня вещах, которым порой не хватает места на java-конференциях.
Читать дальше →