Java 9 - Новые функции: Полное руководство для начинающих

Здравствуйте, начинающие разработчики Java! Я рад быть вашим проводником в этом захватывающем путешествии по новым функциям Java 9. Как кто-то, кто преподавал Java много лет, я могу заверить вас, что эта версия带来了 некоторые game-changing улучшения. Так что погружаемся и исследуем эти функции вместе!

Java 9 - New Features

Введение в Java 9

Прежде чем мы углубимся в новые функции, давайте на минутку поймем, что такое Java 9. Выпущенная в сентябре 2017 года, Java 9引入了许多 улучшений, делающих кодирование более эффективным и приятным. Это как получить блестящий новый ящик с инструментами, о которых вы даже не подозревали, что вам нужны!

Система модулей

Одним из самых значительных добавлений в Java 9 является Система модулей, также известная как Проект Jigsaw. Теперь я знаю, что вы думаете - "Модули? Это звучит сложно!" Но не волнуйтесь, это на самом деле удобный способ лучше организовать ваш код.

Что такое модуль?

Представьте модуль как контейнер для вашего кода. Это как хорошо организованный шкаф, где у всего есть свое место. Каждый модуль имеет:

  1. Имя
  2. Набор пакетов
  3. Список того, что ему нужно (зависимости)
  4. Список того, что он предлагает другим модулям

Давайте посмотрим на простой пример:

module com.myapp {
requires java.sql;
exports com.myapp.api;
}

В этом примере мы создаем модуль с именем com.myapp. Он требует модуль java.sql (потому что ему нужна базовая функциональность) и экспортирует пакет com.myapp.api (делая его доступным для использования другими модулями).

REPL (Чтение-Оценка-Вывод-Цикл)

Java 9引入ила JShell, инструмент REPL. Теперь вы можете задаться вопросом: "Что в мире такое REPL?" Представьте, что вы ведете对话 с Java, где вы можете вводить фрагменты кода и получать немедленные ответы. Это REPL!

Чтобы запустить JShell, просто введите jshell в вашей командной строке. Давайте попробуем простой пример:

jshell> System.out.println("Hello, Java 9!")
Hello, Java 9!

Неужели это cool? Вы только что запустили код Java без создания полного программного обеспечения! Это идеально для тестирования идей или изучения новых концепций.

Улучшенные JavaDocs

Документация может показаться неинтересной, но поверьте мне, хорошая документация - это лучший друг разработчика. Java 9 улучшила JavaDocs, добавив функцию поиска и поддержку HTML5.

Фабричные методы для коллекций

Создание коллекций в Java стало еще проще! Java 9引入ила новые фабричные методы для коллекций. Давайте посмотрим, как мы создаем неизменный список:

List<String> fruits = List.of("Apple", "Banana", "Cherry");
System.out.println(fruits);

Вывод:

[Apple, Banana, Cherry]

Неужели это не чище, чем старый способ? Больше не нужно verbose создание ArrayList и добавление элементов один за другим!

Приватные методы в интерфейсах

Java 9 позволяет вам иметь приватные методы в интерфейсах. Это может показаться немного абстрактным, так что давайте посмотрим на пример:

public interface MyInterface {
private static void privateMethod() {
System.out.println("This is a private method");
}

default void publicMethod() {
privateMethod();
System.out.println("This is a public method");
}
}

В этом примере privateMethod() может быть использован только внутри интерфейса. Это как иметь secret helper, о котором знает только интерфейс!

Улучшения Stream API

API Stream, введенный в Java 8, стал еще лучше в Java 9. Одним из интересных добавлений является метод takeWhile(). Давайте посмотрим на его использование:

List<Integer> numbers = List.of(2, 4, 6, 8, 9, 10, 12);
List<Integer> evenNumbers = numbers.stream()
.takeWhile(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers);

Вывод:

[2, 4, 6, 8]

Этот код берет числа из списка, пока они члены. Как только он встречает нечетное число (9), он останавливается. Pretty neat, не так ли?

Улучшение try-with-resources

Java 7 ввел try-with-resources, и Java 9 улучшил его. Теперь вы можете использовать final или effectively final переменные в операторах try-with-resources. Вот пример:

BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
try (reader) {
// Используйте reader
} catch (IOException e) {
e.printStackTrace();
}

Это делает ваш код чище и более читаемым. Это как наводить порядок в своей комнате - все просто лучше!

Заключение

Мы только что коснулись поверхности того, что предлагает Java 9. Есть еще много функций, такие как улучшения в API Process, новая версия schemes и HTTP/2 клиент. По мере вашего продолжения пути в Java, вы обнаружите, как эти функции делают вашу жизнь кодирования легче и приятнее.

помните, что лучший способ учиться - это делать. Запустите ваш IDE, запустите JShell и экспериментируйте с этими новыми функциями. Не бойтесь犯 ошибок - это как мы учимся и вырастаем как разработчики.

Счастливого кодирования, будущие эксперты Java! ??‍??‍?

Credits: Image by storyset