Ein- und Ausgabe in Java 17: Eine ausführliche Anleitung
Java для начинающих: что это такое, история и первая программа
Добро пожаловать в мир Java! Если вы пользовались Android-смартфоном, заходили в интернет-банк или играли в Minecraft — вы уже сталкивались с Java. В этом уроке разберём: что такое Java, откуда она взялась, и напишем первую программу — строку за строкой.
Что такое Java и зачем она нужна?
Java — это язык программирования и платформа для создания программ. Представьте: вы написали рецепт торта на русском. Французский кондитер не поймёт. Немецкий — тоже. Придётся переводить для каждой страны. Именно такая проблема была у программистов до Java: программу переписывали для Windows, Mac, Linux отдельно.
Java решила это принципом "Write Once, Run Anywhere" (Пиши однажды, запускай везде). Программа пишется один раз и запускается на любой платформе.
История Java: от кофейного острова до миллиардов устройств
В 1991 году в компании Sun Microsystems Джеймс Гослинг (James Gosling) начал секретный проект "Green". Цель — создать язык для бытовой электроники (телевизоров, пультов управления), который работает на любом железе.
Первое название — Oak (дуб, дерево за окном Гослинга), но такая торговая марка уже была. Язык переименовали в Java — в честь острова Ява в Индонезии, откуда привозили любимый кофе команды. Логотип Java — чашка кофе!
В 1995 году Java стала публичной и произвела революцию. В 2010 году Oracle купила Sun Microsystems вместе с Java. Сегодня Java — один из самых популярных языков в мире, неизменно в топ-3.
Где используется Java сегодня?
- Android-разработка — миллиарды смартфонов используют Java/Kotlin
- Серверные приложения — LinkedIn, Amazon, eBay, Twitter
- Банки и финансы — надёжность и безопасность
- Minecraft — написан целиком на Java!
- Big Data — Hadoop, Spark, Kafka написаны на Java
- Корпоративные системы — ERP, CRM, системы управления
Как работает Java: JVM — ваш персональный переводчик
Java решила проблему переносимости с помощью JVM (Java Virtual Machine — Виртуальная машина Java).
- Вы пишете код на Java (файл
.java) - Компилятор
javacпревращает его в байт-код (файл.class) - JVM читает байт-код и переводит в команды для вашего конкретного процессора
Аналогия: байт-код — это эсперанто (международный язык). JVM — переводчик, знающий все платформы (Windows, Mac, Linux). Один байт-код — везде, где есть JVM.
Ваш код (.java)
↓ компилятор javac
Байт-код (.class)
↓ JVM (на любой ОС)
Машинный код процессора
Три важные аббревиатуры:
- JVM — виртуальная машина, запускает байт-код
- JRE = JVM + стандартные библиотеки (для запуска программ)
- JDK = JRE + компилятор javac + инструменты (нужен разработчику!)
Установка JDK
Windows
- Скачайте JDK 17+ с adoptium.net (бесплатный OpenJDK)
- Запустите установщик, нажимайте Next
- Проверьте: откройте cmd и введите
java -version
macOS
brew install openjdk@17
java -version
Linux (Ubuntu)
sudo apt install openjdk-17-jdk
java -version
После установки вы увидите: openjdk version "17.0.x"
Первая программа: Hello, World!
Создайте файл HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Запуск:
javac HelloWorld.java # Компилируем → HelloWorld.class
java HelloWorld # Запускаем
# Вывод:
Hello, World!
Разбор каждой строки — ничего не пропускаем!
Строка 1: public class HelloWorld {
public — модификатор доступа. "Публичный" — этот класс виден всем.
class — ключевое слово: объявляем класс. В Java весь код живёт внутри классов.
HelloWorld — имя класса. Критично: имя файла = имя класса (учитывается регистр!).
Файл HelloWorld.java → класс HelloWorld. Ошибка → не скомпилируется.
{ — открывает тело класса.
Строка 2: public static void main(String[] args) {
Это точка входа — JVM ищет именно этот метод при запуске.
public — JVM вызывает main извне, нужен публичный доступ.
static — принадлежит классу, а не объекту. JVM вызывает без создания объекта.
void — не возвращает значение.
main — точное имя. Java чувствительна к регистру: Main не подойдёт!
String[] args — аргументы командной строки. Запуск java HelloWorld Иван → args[0]="Иван".
Строка 3: System.out.println("Hello, World!");
System — встроенный класс Java для системных операций.
out — поле класса System: стандартный поток вывода (экран).
println — метод: вывести строку + перевод строки. print — без переноса.
"Hello, World!" — строковый литерал. Двойные кавычки обязательны!
; — точка с запятой завершает каждое выражение. Забыть — самая частая ошибка!
Типичные ошибки новичков
// Ошибка 1: Неверное имя файла
// Файл helloworld.java, класс HelloWorld
// error: class HelloWorld is public, should be in HelloWorld.java
// Ошибка 2: Забытая точка с запятой
System.out.println("Hello") // error: ';' expected
// Ошибка 3: Одинарные кавычки вместо двойных
System.out.println('Hello'); // error: unclosed character literal
// Ошибка 4: Маленькая буква
system.out.println("Hello"); // error: cannot find symbol: variable system
Больше примеров вывода
import java.util.Scanner;
public class OutputDemo {
public static void main(String[] args) {
// С переносом строки
System.out.println("Строка 1");
System.out.println("Строка 2");
// Без переноса
System.out.print("Привет, ");
System.out.print("мир!");
System.out.println(); // только перенос
// Форматированный вывод
String name = "Иван";
int age = 16;
double gpa = 4.8;
System.out.printf("Имя: %s, Возраст: %d, Средний балл: %.1f%n", name, age, gpa);
// %s — строка, %d — целое, %.1f — дробное с 1 знаком, %n — перенос строки
// Чтение с клавиатуры
Scanner sc = new Scanner(System.in);
System.out.print("Введи своё имя: ");
String yourName = sc.nextLine();
System.out.print("Введи год рождения: ");
int year = sc.nextInt();
int yourAge = 2024 - year;
System.out.println("Привет, " + yourName + "! Тебе примерно " + yourAge + " лет.");
System.out.println("Это " + yourAge * 365 + " дней жизни!");
sc.close();
}
}
Комментарии в Java
public class Comments {
/**
* Javadoc-комментарий.
* Из него утилита javadoc генерирует HTML-документацию.
* @param args аргументы командной строки
* @author Ваше имя
* @version 1.0
*/
public static void main(String[] args) {
// Однострочный комментарий — от // до конца строки
int x = 5; // Можно добавить в конце строки кода
/*
* Многострочный комментарий.
* Удобен для длинных пояснений.
* Начинается: /* Заканчивается: */
int y = 10;
// Совет: пишите комментарии "ЗАЧЕМ", а не "ЧТО":
int maxAttempts = 3; // Плохой комментарий: "число три"
int loginAttempts = 3; // Хороший: максимум попыток до блокировки аккаунта
}
}
Структура Java-программы
// 1. Объявление пакета (рекомендуется)
package com.example.myapp;
// 2. Импорты
import java.util.Scanner;
import java.util.ArrayList;
import java.util.HashMap;
// 3. Класс (один публичный класс = один файл)
public class MyProgram {
// 4. Поля класса
private static final String VERSION = "1.0";
// 5. Точка входа
public static void main(String[] args) {
System.out.println("Программа v" + VERSION + " запущена!");
MyProgram app = new MyProgram();
app.run();
}
// 6. Другие методы
public void run() {
System.out.println("Работаю...");
}
}
Практические задания
Задание 1: О себе
public class AboutMe {
public static void main(String[] args) {
System.out.println("Имя: Иван Петров");
System.out.println("Возраст: 16 лет");
System.out.println("Хобби: программирование и игры");
System.out.println("Мечта: написать собственную игру на Java!");
}
}
Задание 2: Калькулятор
public class Calculator {
public static void main(String[] args) {
int a = 15, b = 4;
System.out.println(a + " + " + b + " = " + (a + b)); // 19
System.out.println(a + " - " + b + " = " + (a - b)); // 11
System.out.println(a + " * " + b + " = " + (a * b)); // 60
System.out.println(a + " / " + b + " = " + (a / b)); // 3 (целое!)
System.out.println(a + " % " + b + " = " + (a % b)); // 3 (остаток)
// Дробное деление:
System.out.printf("%.1f / %d = %.4f%n", (double)a, b, (double)a/b); // 3.7500
}
}
Задание 3: Персональное приветствие
import java.util.Scanner;
public class PersonalGreet {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Как тебя зовут? ");
String name = sc.nextLine();
System.out.print("В каком году ты родился(ась)? ");
int year = sc.nextInt();
int age = 2024 - year;
System.out.println("Привет, " + name + "! Тебе примерно " + age + " лет.");
System.out.println("Это " + age * 12 + " месяцев или " + age * 365 + " дней!");
if (age < 18) {
System.out.println("До совершеннолетия ещё " + (18 - age) + " лет.");
} else {
System.out.println("Ты уже совершеннолетний!");
}
sc.close();
}
}
Итого: что мы узнали
- ✅ Java создана Джеймсом Гослингом в 1995 году (Sun Microsystems)
- ✅ Принцип "Write Once, Run Anywhere" — пишем один раз, запускаем везде
- ✅ JVM — виртуальная машина, выполняющая байт-код на любой платформе
- ✅ JDK = компилятор javac + JVM + стандартные библиотеки
- ✅ Имя файла ОБЯЗАНО совпадать с именем публичного класса (с учётом регистра)
- ✅ Метод
main— точка входа:public static void main(String[] args) - ✅
System.out.println()— вывод с переносом строки - ✅
System.out.printf()— форматированный вывод - ✅
Scanner— чтение данных с клавиатуры - ✅ Три вида комментариев:
//,/* */,/** */(Javadoc)
В следующем уроке разберём переменные и типы данных — как хранить и обрабатывать данные в программах Java.