1.1. Введение в Java
Материалы
Добро пожаловать в мир Java! Если вы слышали о Java но не знаете с чего начать, или просто хотите понять что это такое - вы в правильном месте.
Что такое Java?
Java - это одновременно язык программирования и платформа. Да, сразу две вещи в одной! Давайте разберёмся что это значит.
Java как язык программирования
Java - это высокоуровневый язык, созданный быть:
- Простым - легче чем C++, но мощным
- Объектно-ориентированным - всё вращается вокруг объектов
- Безопасным - множество проверок защищают от ошибок
- Надёжным - сборщик мусора управляет памятью за вас
- Переносимым - “напиши один раз, запускай везде”
- Многопоточным - встроенная поддержка параллелизма
- Быстрым - современные JVM очень оптимизированы
Java как платформа
Обычная платформа - это комбинация операционной системы и оборудования. Java платформа другая - это программная платформа поверх обычных платформ.
Java платформа состоит из двух компонентов:
- Java Virtual Machine (JVM) - виртуальная машина, которая запускает ваш код
- Java API - огромная библиотека готовых компонентов
Как работает Java?
В отличие от языков вроде C, Java работает по-особенному:
Процесс разработки
┌─────────────────┐
│ MyProgram.java │ ← Исходный код (текстовый файл)
└────────┬────────┘
│
[компиляция]
javac компилятор
│
▼
┌─────────────────┐
│ MyProgram.class │ ← Байт-код (не машинный код!)
└────────┬────────┘
│
[выполнение]
java launcher
│
▼
┌────────┐
│ JVM │ ← Виртуальная машина
└────┬───┘
│
▼
Ваша программа работает!
Три ключевых шага:
1. Пишете код
Создаёте файл с расширением .java и пишете код:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Привет, мир!");
}
}
2. Компилируете
Компилятор javac превращает ваш код в байт-код:
javac HelloWorld.java
Это создаёт файл HelloWorld.class с байт-кодом.
Важно: Байт-код - это НЕ машинный код вашего процессора! Это специальный промежуточный код для JVM.
3. Запускаете
JVM запускает байт-код:
java HelloWorld
И видите:
Привет, мир!
“Напиши один раз, запускай везде”
Вот в чём магия Java! Тот же самый .class файл работает на:
- Windows
- macOS
- Linux
- И многих других платформах
HelloWorld.class (один файл байт-кода)
│
├─────────────┬─────────────┬─────────────┐
│ │ │ │
▼ ▼ ▼ ▼
JVM Windows JVM macOS JVM Linux JVM Android
│ │ │ │
▼ ▼ ▼ ▼
Работает везде одинаково!
Компилируете один раз, запускаете везде. Не нужно перекомпилировать под каждую платформу!
Что такое JVM?
Java Virtual Machine - это “компьютер внутри компьютера”. Это программа, которая:
- Загружает ваш байт-код
- Проверяет его на безопасность
- Выполняет его
- Оптимизирует горячие участки кода прямо во время работы
Современные JVM (как HotSpot) очень умные:
- Находят узкие места производительности
- Компилируют часто используемый код в машинный код
- Управляют памятью (сборщик мусора)
- Делают вашу программу быстрой
Интересный факт: JVM может запускать не только Java! Kotlin, Scala, Groovy, Clojure - все они компилируются в байт-код JVM.
Java API: ваш швейцарский нож
Java поставляется с огромной стандартной библиотекой - Java API. Это тысячи готовых классов для всего:
- java.lang - базовые классы (String, Math, System)
- java.util - коллекции, дата/время
- java.io - работа с файлами
- java.net - сетевое программирование
- java.awt / javax.swing - графические интерфейсы
- javafx - современный UI
- И многое другое!
Вместо того чтобы писать всё с нуля, вы используете готовые компоненты:
import java.util.ArrayList;
import java.util.List;
List<String> names = new ArrayList<>();
names.add("Анна");
names.add("Боб");
names.add("Карл");
for (String name : names) {
System.out.println("Привет, " + name);
}
Всё уже написано за вас!
Почему Java популярна?
1. Простота изучения
Хотя Java мощная, она проще чем C++:
- Нет указателей (и утечек памяти!)
- Автоматическая сборка мусора
- Меньше сложных концепций
2. Пиши меньше кода
Java код обычно в 4 раза короче аналогичного C++ кода. Меньше кода = меньше ошибок!
// Java - кратко и ясно
String message = "Hello";
System.out.println(message.toUpperCase());
// На C++ это было бы сложнее
3. Объектно-ориентированное программирование
Всё в Java - объект (почти). Это помогает организовать код:
class Dog {
private String name;
public Dog(String name) {
this.name = name;
}
public void bark() {
System.out.println(name + " говорит: Гав!");
}
}
Dog myDog = new Dog("Шарик");
myDog.bark(); // Шарик говорит: Гав!
4. Надёжность
Java заботится о безопасности:
- Строгая типизация ловит ошибки при компиляции
- Автоматическое управление памятью
- Проверка границ массивов
- Обработка исключений встроена в язык
5. Огромное сообщество
- Миллионы разработчиков по всему миру
- Тысячи библиотек и фреймворков
- Много вакансий
- Куча обучающих материалов
Где используется Java?
Java везде! Вот несколько примеров:
Веб-приложения (Backend)
- Spring Boot - самый популярный Java фреймворк
- Amazon, Netflix, LinkedIn используют Java
Мобильные приложения
- Android - большинство приложений написано на Java/Kotlin
Корпоративные системы
- Банки, страховые компании
- Системы управления предприятием
Big Data
- Hadoop, Apache Spark написаны на Java
- Обработка терабайтов данных
Встроенные системы
- Смарт-карты
- Телевизионные приставки
- IoT устройства
Desktop приложения
- IntelliJ IDEA (лучшая IDE для Java)
- Minecraft (написан на Java!)
Ваша первая программа
Давайте создадим классическую программу “Hello World”!
1. Создайте файл HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
2. Скомпилируйте:
javac HelloWorld.java
Это создаст HelloWorld.class.
3. Запустите:
java HelloWorld
Вы увидите:
Hello, World!
Поздравляем! Вы только что написали, скомпилировали и запустили вашу первую Java программу!
Что происходит в коде?
Давайте разберём построчно:
public class HelloWorld {
public- класс доступен всемclass- объявляем классHelloWorld- имя класса (должно совпадать с именем файла!)
public static void main(String[] args) {
public- метод доступен всемstatic- метод принадлежит классу, а не объектуvoid- метод ничего не возвращаетmain- точка входа в программуString[] args- параметры командной строки
System.out.println("Hello, World!");
System.out- стандартный выводprintln- вывести строку и перейти на новую строку"Hello, World!"- строка для вывода
}
}
Закрывающие скобки для метода и класса.
Основные концепции (коротко)
Вот ключевые концепции, которые вы будете изучать:
1. Классы и объекты
class Car {
String brand;
void drive() {
System.out.println(brand + " едет!");
}
}
Car myCar = new Car();
myCar.brand = "Toyota";
myCar.drive();
2. Типы данных
int age = 25; // целое число
double price = 19.99; // число с плавающей точкой
String name = "Анна"; // строка
boolean isActive = true; // логическое значение
3. Управление потоком
if (age >= 18) {
System.out.println("Взрослый");
} else {
System.out.println("Ребёнок");
}
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
4. Методы
public int add(int a, int b) {
return a + b;
}
int result = add(5, 3); // 8
5. Коллекции
List<String> fruits = new ArrayList<>();
fruits.add("Яблоко");
fruits.add("Банан");
fruits.add("Апельсин");
Java экосистема
Инструменты сборки
- Maven - управление зависимостями и сборка проектов
- Gradle - современная альтернатива Maven
Популярные фреймворки
- Spring / Spring Boot - веб-приложения и микросервисы
- Hibernate - работа с базами данных
- JUnit - тестирование
- JavaFX - графические интерфейсы
Важно: Java и JavaScript - это РАЗНЫЕ языки! Они похожи только названием.
Удачи в изучении Java!