Как компилируется java

Аватар пользователя Никита Сысоев
Никита Сысоев
17 октября 2022

Компиляцией исходного кода программы в байт-код занимается компилятор javac. Затем этот байт-код интерпретируется JVM в машинный код. Такая последовательность действий позволяет выполнять байт-код на любой платформе. Также для ускорения работы приложений Java используется JIT компилятор, который компилирует байт-код, выполняющийся много раз, в машинный. При каждом вызове такого участка кода JVM будет сразу вызывать скомпилированный машинный код, а не интерпретировать его каждый раз.

Напишем небольшую программу, которая будет заполнять массив из 10 элементов случайными числами, а затем считать количество четных и выводить это значение на экран.

import java.util.Arrays;
import java.util.Random;

public class Example {
    public static void main(String[] args) {
        int[] arr = createArrayWithRandomNumbers();
        System.out.println(Arrays.toString(arr)); // => [57, 96, 22, 25, 24, 86, 30, 48, 23, 12]
        System.out.println(countEvenNumbers(arr)); // => 7
    }

    // Метод проходит по массиву в цикле и считает 
    // количество четных чисел
    private static int countEvenNumbers(int[] arr) {
        int count = 0;
        for (int elem: arr) {
            if (elem % 2 == 0) {
                count++;
            }
        }
        return count;
    }

    // Метод создает массив из 10 элементов и заполняет 
    // его случайными значениями с верхней границей - 100,
    // не включительно
    private static int[] createArrayWithRandomNumbers() {
        int size = 10;
        int upperBound = 100;
        int[] arr = new int[size];
        Random random = new Random();
        for (int i = 0; i < arr.length; i++) {
            arr[i] = random.nextInt(upperBound);
        }
        return arr;
    }
}

Чтобы скомпилировать эту программу в байт-код, воспользуемся компилятором javac в командной строке:

javac Example.java

После компиляции получаем файл с байт-кодом Example.class, который можно запустить при помощи команды java в терминале:

java Example

Будет выведено содержимое массива и количество четных чисел.

0 0