Во втором случае компилятор заранее и полностью преобразует программу в бинарный процессорный код. Эта процедура выполняется один раз. Далее программа распространяется в виде готового кода и может быть запущена без участия компилятора. При этом тоже необходимо обеспечить совместимость кода программы с процессором и операционной системой компьютера пользователя.
В первом случае специальная программа—интерпретатор поочередно преобразовывает каждую строку программы в команды процессора и отправляет их на выполнение под управлением операционной системы. Поэтому для каждого типа процессора и операционной системы нужна отдельная версия интерпретатора. Интерпретируемые программы работают медленнее, чем скомпилированные, потому что построчное преобразование программы в двоичный код занимает больше времени, чем выполнение готового кода. Но существуют ситуации, когда применение интерпретатора оправдано.
import javax.swing.JOptionPane; public class Listing9_2 {public static void main (String [] args) {// объявляем массив и сразу присваиваем значения его элементам int [] arr=new int [] {1,2,3,4,5,6,7,8,9,10