Как компилируется 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
Основы Java за 14 дней
  • 62 урока в онлайн-тренажере
  • 4 живых вебинара и масскодинг
  • Помощь наставника на весь период обучения

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки