Pull to refresh
11
0
topjava @topjava

Программирование на Java, наставничество

Send message

Фундаментальное руководство по пакетам в Java

Level of difficultyMedium
Reading time23 min
Views20K

Пакеты в Java появились с самого начала, во времена, когда язык еще назывался Oak. Их описание уже присутствует в его ранних спецификациях.

Java-пакеты реализуют так называемое пространство имен (namespace), позволяющее использовать в проекте файлы с одинаковыми именами. Такой подход существует с давних времен во многих языках.

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

И наконец, с помощью пакетов можно ограничивать доступ (из других пакетов) как целиком к классам, так и к их отдельным элементам.

Об этом и многом другом и пойдет речь в данной статье.

Читать далее
Total votes 12: ↑8 and ↓4+4
Comments11

Исчерпывающее руководство по одномерным массивам в Java

Level of difficultyEasy
Reading time20 min
Views13K

Для хранения данных, используемых при работе программы, применяются переменные того или иного типа. Например, если требуется сохранить имя игрока, то создается переменная String name, если целочисленное значение, то int number и т. д. Когда таких значений немного или их количество заранее известно, то для них приемлемо использовать отдельные переменные.

Но что делать, когда в программе задействовано не одно, а 10 чисел, или их количество становится известно только на этапе запуска приложения, когда пользователь вводит его с клавиатуры? Или в какой-то игре может участвовать разное количество игроков, устанавливаемое при ее старте. В таких ситуациях отдельными переменными уже не обойтись, т. к. их точное количество будет невозможно определить. Да и, если все же попытаться это сделать, код станет громоздким и не универсальным, а работа с ним будет крайне ограниченной из-за невозможности использования цикла для автоматизированной обработки данных.

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

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments8

Что нового в Java 15?

Reading time8 min
Views29K


Скрытые классы, запечатанные классы, текстовые блоки, записи и EdDSA: в JDK 15 имеется много ценного.

Как гласит одно из моих любимых выражений, в Java 15 присутствует много богатого шоколадного добра. В новую версию (релиз 15 сентября 2020г.) включены 14 важных изменений (JEP), направленных на совершенствование JDK. В этой статье дается краткий обзор новинок на основе информации, содержащейся в JEP.

Читать дальше →
Total votes 20: ↑14 and ↓6+8
Comments19

Руководство Google по форматированию кода на Java

Reading time21 min
Views28K
image

1. Введение


В данном документе описаны стандарты написания кода на языке программирования Java в корпорации Google. Исходный код Java считается соответствующим этим стандартам тогда и только тогда, когда он удовлетворяет всем описанным в документе правилам.

Затронутые в руководстве темы касаются не только эстетической стороны форматирования кода, но и других типов соглашений или стандартов кодирования. Тем не менее, данный документ концентрируется в первую очередь на определении строгих правил, которым мы повсеместно следуем, и не дает рекомендаций, которые могут быть неверно применены (как человеком, так и машинными инструментами).

Читать дальше →
Total votes 21: ↑12 and ↓9+3
Comments5

Полное руководство по switch в Java

Level of difficultyMedium
Reading time11 min
Views70K

Старый добрый switch был в Java с первого дня. Мы все используем его и привыкли к нему — особенно к его причудам (кого-нибудь еще раздражает break?). Но начиная с Java 12, ситуация начала меняться: switch вместо оператора стал выражением:


boolean result = switch (ternaryBool) {
    case TRUE -> true;
    case FALSE -> false;
    case FILE_NOT_FOUND -> throw new UncheckedIOException(
            "This is ridiculous!",
            new FileNotFoundException());
    default -> throw new IllegalArgumentException("Seriously?!");
};

Результат работы switch-выражения теперь можно сохранять в переменную; ушла необходимость использовать break в каждой ветке case благодаря лямбда-синтаксису и многое другое.


Когда дело доходит до switch после Java 14, необходимо выбрать стиль его использования:


  • оператор или выражение (с Java 14)
  • двоеточия или стрелки (с Java 14)
  • метки или шаблоны (3-й превью в Java 19)
    В этом руководстве я расскажу обо всем, что необходимо знать о switch-выражениях, и как их лучше всего использовать в современной Java.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments4

26 рекомендаций по использованию типа var в Java

Reading time19 min
Views35K

The Java Local Variable Type Inference (LVTI) или кратко — тип var (идентификатор var — это не ключевое слово, а зарезервированное имя типа) был добавлен в Java 10 с помощью JEP 286: Local-Variable Type Inference. Являясь 100% функцией компилятора, она не влияет на байт-код, время выполнения или производительность. В основном компилятор проверяет правую часть от оператора присваивания и, исходя из нее, определяет конкретный тип переменной, а затем заменяет им var.


Кроме того, это полезно для сокращения многословности шаблонного кода, а так же позволяет ускорить сам процесс программирования. Например, очень удобно писать var evenAndOdd =... вместо Map<Boolean, List<Integer>> evenAndOdd =... .


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


В этой статье мы рассмотрим 26 ситуаций, с примерами того, когда можно использовать var, а когда этого делать не стоит.

Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments29

Введение в Spring Boot: создание простого REST API на Java

Reading time8 min
Views386K

Из-за громоздкой конфигурации зависимостей настройка Spring для корпоративных приложений превратилась в весьма утомительное и подверженное ошибкам занятие. Особенно это относится к приложениям, которые используют также несколько сторонних библиотек


Каждый раз, создавая очередное корпоративное Java-приложение на основе Spring, вам необходимо повторять одни и те же рутинные шаги по его настройке:


  • В зависимости от типа создаваемого приложения (Spring MVC, Spring JDBC, Spring ORM и т.д.) импортировать необходимые Spring-модули
  • Импортировать библиотеку web-контейнеров (в случае web-приложений)
  • Импортировать необходимые сторонние библиотеки (например, Hibernate, Jackson), при этом вы должны искать версии, совместимые с указанной версией Spring
  • Конфигурировать компоненты DAO, такие, как: источники данных, управление транзакциями и т.д.
  • Конфигурировать компоненты web-слоя, такие, как: диспетчер ресурсов, view resolver
  • Определить класс, который загрузит все необходимые конфигурации
Читать дальше →
Total votes 11: ↑6 and ↓5+1
Comments19

Information

Rating
Does not participate
Registered
Activity