W3docs

Программа Java Hello World

Напишите, скомпилируйте и запустите свою первую программу на Java — классический Hello World — и разберитесь в каждой части исходного файла.

Каждый учебник по языку программирования начинается с одного и того же ритуала: крошечной программы, которая выводит Hello, World!. Версия Java содержит больше шаблонного кода, чем большинство языков, но каждая его часть встретится вам снова. Эта глава разбирает программу строка за строкой, а затем показывает, как её скомпилировать и запустить.

Предполагается, что JDK уже установлен; если нет, сначала выполните инструкции из Как установить Java.

Вы можете отредактировать пример ниже и нажать Run — он реально компилируется и выполняется на сервере:

java— editable, runs on the server

Полная программа

Вот полный исходный файл. По соглашению он сохраняется как HelloWorld.java — Java требует, чтобы имя файла совпадало с именем публичного класса.

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Разбор строка за строкой

public class HelloWorld

Каждая программа на Java живёт внутри класса. Класс — это шаблон, объединяющий данные и поведение, — краеугольный камень объектно-ориентированного программирования. Здесь класс называется HelloWorld, а ключевое слово public означает, что он виден из любого другого класса.

По соглашению имена классов используют UpperCamelCase: HelloWorld, BankAccount, Order.

public static void main(String[] args)

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

  • public — JVM должна вызывать его извне класса.
  • static — его можно вызвать, не создавая экземпляр HelloWorld.
  • void — не возвращает значение.
  • main — специальное имя, которое ищет JVM.
  • String[] args — массив аргументов командной строки, передаваемых при запуске программы. Его можно назвать как угодно (args — принятое соглашение).

System.out.println("Hello, World!");

System — это класс из стандартной библиотеки; out — статическое поле, содержащее поток стандартного вывода; println — метод этого потока, который выводит аргумент с символом новой строки.

"Hello, World!" — это строковый литерал — последовательность символов, заключённая в двойные кавычки. Строки занимают центральное место в Java; когда освоитесь здесь, раздел Java Strings расскажет, что с ними можно делать.

Каждый оператор Java заканчивается точкой с запятой (;). Компилятор сообщит об ошибке, если вы её пропустите. Подробные правила — пробелы, фигурные скобки, идентификаторы — описаны в разделе Java Syntax.

Компиляция и запуск из терминала

Если JDK добавлен в PATH (см. предыдущие две главы), можно скомпилировать и запустить из любого терминала:

# Save the source as HelloWorld.java, then:
javac HelloWorld.java       # compiles to HelloWorld.class
java HelloWorld             # runs the bytecode

Вывод:

Hello, World!

Обратите внимание: в java передаётся HelloWorld, а не HelloWorld.class или HelloWorld.java. Лаунчер java принимает полное имя класса и находит соответствующий файл .class в classpath.

Попробуйте вариацию

Отредактируйте запускаемый пример, чтобы напечатать что-то другое — ваше имя, текущий год, многострочное сообщение — и нажмите Run. Несколько идей:

System.out.println("Hello from Java " + System.getProperty("java.version"));
System.out.println("Line 1");
System.out.println("Line 2");
System.out.printf("%s is %d years old%n", "Ada", 36);

Последние два метода, которые стоит знать:

  • println — выводит аргумент и символ новой строки.
  • print — как println, но без завершающей новой строки.
  • printf — форматирование в стиле printf, как в C. %s вставляет строку, %d — целое число, %n — платформенный символ новой строки. Полный набор спецификаторов формата смотрите в разделе Java String Formatting.

Типичные ошибки начинающих

Несколько вещей, которые часто сбивают новичков:

  • Несовпадение имени файла. public class HelloWorld должен находиться в файле HelloWorld.java. Иначе javac завершится с ошибкой.
  • Пропущенная точка с запятой. Каждый оператор требует её. Сообщения об ошибках компилятора обычно чётко указывают на строку.
  • Println vs println. Java чувствительна к регистру.
  • Типографские кавычки. Копирование кода с сайта, который «услужливо» заменил " на ", приведёт к непонятной ошибке компилятора.

Что дальше

Раздел How to Compile and Run a Java Program подробнее рассматривает, что на самом деле делают javac и лаунчер java, включая classpath, пакеты и использование jshell для быстрых экспериментов без полноценной программы. Чтобы комментировать код по мере его роста, смотрите раздел Java Comments.

Практика

Практика
Какая сигнатура является правильной точкой входа для программы на Java?
Какая сигнатура является правильной точкой входа для программы на Java?
Was this page helpful?