Что такое технология Java и каково ее применение? Что такое JRE (Java Runtime Environment)? Среда выполнения java

Набор программ и классов JDK содержит:

  • компилятор javac из исходного текста в байт-коды;
  • интерпретатор java , содержащий реализацию JVM;
  • облегченный интерпретатор jre (в последних версиях отсутствует);
  • программу просмотра апплетов appietviewer , заменяющую браузер;
  • отладчик jdt> ;
  • дизассемблер javap ;
  • программу архивации и сжатия jar ;
  • программу сбора документации javadoc ;
  • программу javah генерации заголовочных файлов языка С;
  • программу javakey добавления электронной подписи;
  • программу native2ascii , преобразующую бинарные файлы в текстовые;
  • программы rmic и rmiregistry для работы с удаленными объектами;
  • программу seriaiver , определяющую номер версии класса;
  • библиотеки и заголовочные файлы "родных" методов;
  • библиотеку классов Java API (Application Programming Interface).

В прежние версии JDK включались и отладочные варианты исполнимых программ: javac_g , java_g и т. д.

Компания SUN Microsystems постоянно развивает и обновляет JDK, каждый год появляются новые версии.

В 1996 г. была выпущена первая версия JDK 1.0, которая модифицировалась до версии с номером 1.0.2. В этой версии библиотека классов Java API содержала 8 пакетов. Весь набор JDK 1.0.2 поставлялся в упакованном виде в одном файле размером около 5 Мбайт, а после распаковки занимал около 8 Мбайт на диске.

В 1997 г. появилась версия JDK 1.1, последняя ее модификация, 1.1.8, выпущена в 1998 г. В этой версии было 23 пакета классов, занимала она 8.5 Мбайт в упакованном виде и около 30 Мбайт на диске.

В первых версиях JDK все пакеты библиотеки Java API были упакованы в один архивный файл classes.zip и вызывались непосредственно из этого архива, его не нужно распаковывать.

Затем набор инструментальных средств JDK был сильно переработан.

Версия JDK 1.2 вышла в декабре 1998 г. и содержала уже 57 пакетов классов. В архивном виде это файл размером почти 20 Мбайт и еще отдельный файл размером более 17 Мбайт с упакованной документацией. Полная версия располагается на 130 Мбайтах дискового пространства, из них около 80 Мбайт занимает документация.

Начиная с этой версии, все продукты технологии Java собственного производства компания SUN стала называть Java 2 Platform, Standard Edition , сокращенно J2SE, a JDK переименовала в Java 2 SDK, Standard Edition (Software Development Kit), сокращенно J2SDK, поскольку выпускается еще Java 2 SDK Enterprise Edition и Java 2 SDK Micro Edition . Впрочем, сама компания SUN часто пользуется и старым названием, а в литературе утвердилось название Java 2.

Кроме 57 пакетов классов, обязательных на любой платформе и получивших название Core API , в Java 2 SDK vl.2 входят еще дополнительные пакеты классов, называемые Standard Extension API. В версии Java 2 SDK SE, vl.3, вышедшей в 2000 г., уже 76 пакетов классов, составляющих Core API. В упакованном виде это файл размером около 30 Мбайт, и еще файл с упакованной документацией размером 23 Мбайта. Все это распаковывается в 210 Мбайт дискового пространства. Эта версия требует процессор Pentium 166 и выше и не менее 32 Мбайт оперативной памяти.

В настоящее время версия JDK 1.0.2 уже не используется. Версия JDK 1.1.5 с графической библиотекой AWT встроена в популярные браузеры Internet Explorer 5.0 и Netscape Communicator 4.7, поэтому она применяется для создания апплетов. Технология Java 2 широко используется на серверах и в клиент-серверных системах.

Кроме JDK, компания SUN отдельно распространяет еще и набор JRE (Java Runtime Environment).

Что такое JRE

Набор программ и пакетов классов JRE содержит все необходимое для выполнения байт-кодов, в том числе интерпретатор java (в прежних версиях облегченный интерпретатор jre ) и библиотеку классов. Это часть JDK, не содержащая компиляторы, отладчики и другие средства разработки. Именно JRE или его аналог других фирм содержится в браузерах, умеющих выполнять программы на Java, операционных системах и системах управления базами данных.

Хотя JRE входит в состав JDK, фирма SUN распространяет этот набор и отдельным файлом.

Версия JRE 1.3.0 - это архивный файл размером около 8 Мбайт, разворачивающийся в 20 Мбайт на диске.

Какие интегрированные среды Java существуют на сегодняшний день. Java Runtime Environment(JRE) – минимальная реализация виртуальной машины,необходимая для исполнения Java – приложений, без компилятора и других средств разработки.Состоит из виртуальной машины – Java Virtual Machine и библиотеки Java-классов JRF распространяется свободно и для большинства платформ может быть загружена с сайта Oracle. Cредства разработки вместе с JRE входят в JDK. На сегодняшний день существуют три основные IDE для разработки на Java:Eclipse,NetBeans и Intellij IDEA.Выбрать для себя, как же именно среда разработки наиболее удобно – задача, отнюдь, не из простых. И выбор этот со временем может изменяться. Полный дитрибутив NetBeans из коробки поддерживает Java (SE,ME,EE,Card,FX), C/C++,Groovy, PHP,HTML5. Возможности этой IDE внушительны: сразу есть поддержка JavaEE, Spring Framework, Hibernate, OSGL, Maven, юнит-тестов,возможность разработки настольных приложений на платформе NetBeans и использования облачных сервисов. Отдельным плюсом стоит отметить то, что поддержка новых версий спецификаций, входящих в JavaEE, изначально появляется именно в NetBeans. Главноые достоинства Eclipse – ее расширяемость, огромное сообщество, разрабатывающее огромное же количество плагинов и расшириний, поддержка практически всех технологий, связанных с Java. По своей природе Eclipse очень тяжеловесная IDE,и комфортно работать с ней стало возможно начиная с версии Juno. Intellij IDEA. Самая известная коммерческая IDE для разработки на Java. В комплекте с IDE идет огромное количество расширений, добавляющих в нее поддержку практически всех распространенных Java- технологий и не только.

Принципы объектно-ориентированного программирования (абстракция, иерархия, ответственность, модульность)

Принципы объектно-ориентированного программирования.Объектно-ориентированное программирование развивается уже более двадцати лет. Имеется несколько школ, каждая из которых предлагает свой набор принципов работы с объектами и по-своему излагает эти принципы. Но есть несколько общепринятых понятий. Перечислим их. Абстракция Мы должны абстрагироваться от некоторых конкретных деталей объекта. Очень важно выбрать правильную степень абстракции. Описывая поведение какого-либо объекта, например автомобиля, мы строим его модель. Описание каждой модели производится в виде одного или нескольких классов (classes). Класс можно считать проектом, слепком, чертежом, по которому затем будут создаваться конкретные объекты. Класс содержит описание переменных и констант, характеризующих объект. Они называются полями класса (class fields). Процедуры, описывающие поведение объекта, называются методами класса (class methods). Внутри класса можно описать и вложенные классы (nested classes) и вложенные интерфейсы. Поля, методы и вложенные классы первого уровня являются членами класса (class members). Разные школы объектно-ориентированного программирования предлагают разные термины, мы используем терминологию, принятую в технологии Java. Вот набросок описания автомобиля:

class Automobile{

int maxVelocity; // Поле, содержащее наибольшую скорость автомобиля

int speed; // Поле, содержащее текущую скорость автомобиля

int weight; // Поле, содержащее вес автомобиля

// Прочие поля...

void moveTo(int x, int у){ // Метод, моделирующий перемещение

// автомобиля. Параметры х и у - не поля

int а = 1; // Локальная переменная - не поле

// Тело метода. Здесь описывается закон

// перемещения автомобиля в точку (х, у)

// Прочие методы. . .

Иерархия. Иерархия объектов давно используете для их классификации. Особенно детально она проработана в биологии. Все знакомы с семействами, родами и видами. Мы можем сделать описание своих домашних животных (pets): кошек (cats), собак (dogs), коров (cows) и прочих следующим образом:

class Pet{ // Здесь описываем общие свойства всех домашних любимцев

Master person; // Хозяин животного

int weight, age, eatTimel]; // Вес, возраст, время кормления

int eat(int food, int drink, int time){ // Процесс кормления

// Начальные действия...

if (time == eatTimefi]) person.getFood(food, drink);

// Метод потребления пищи

void voice(); // Звуки, издаваемые животным

// Прочее...

Затем создаем классы, описывающие более конкретные объекты, связывая их с общим классом:

class Cat extends Pet{ // Описываются свойства, присущие только кошкам:

int mouseCatched; // число пойманных мышей

void toMouse(); // процесс ловли мышей

// Прочие свойства

class Dog extends Pet{ // Свойства собак:

void preserve(); // охранять

Заметьте, что мы не повторяем общие свойства, описанные в классе Pet. Они наследуются автоматически. Мы можем определить объект класса Dog и использовать в нем все свойства класса Pet так, как будто они описаны в классе Dog:

Dog tuzik = new Dog(), sharik = new Dog();

После этого определения можно будет написать

int p = sharik.eat (30, 10, 12);

А классификацию продолжить так:

class Pointer extends Dog{ ... } // Свойства породы Пойнтер

class Setter extends Dog{ ... } // Свойства сеттеров

Ответственность. В нашем примере рассматривается только взаимодействие в процессе кормления, описываемое методом eat(). В этом методе животное обращается к хозяину, умоляя его применить метод getFood().Итак, объект sharik, выполняя свой метод eat (), посылает сообщение объекту, ссылка на который содержится в переменной person, с просьбой выдать ему определенное количество еды и питья. Сообщение записано в строке person.getFood(food, drink). Этим сообщением заключается контракт (contract) между объектами, суть которого в том, что объект sharik берет на себя ответственность (responsibility) задать правильные параметры в сообщении, а объект - текущее значение person - возлагает на себя ответственность применить метод кормления getFood() , каким бы он ни был. Для того чтобы правильно реализовать принцип ответственности, применяется четвертый принцип объектно-ориентированного программирования - модульность (modularity)

Модульность Этот принцип утверждает - каждый класс должен составлять отдельный модуль. Члены класса, к которым не планируется обращение извне, должны быть инкапсулированы. В языке Java инкапсуляция достигается добавлением модификатора private к описанию члена класса. Например:

private int mouseCatched;

private String name;

private void preserve();

Эти члены классов становятся закрытыми, ими могут пользоваться только экземпляры того же самого класса, например, tuzik может дать поручение sharik.preserve(). А если в классе Master мы напишем private void getFood(int food, int drink); то метод getFood() не будет найден, и несчастный sharik не сможет получить пищу. , В противоположность закрытости мы можем объявить некоторые члены класса открытыми, записав вместо слова private модификатор public, например: public void getFood(int food, int drink); К таким членам может обратиться любой объект любого класса.

Как классифицируются типы данных языка Java 2. Объявление переменных .

В Java определено две категории данных:

 примитивные типы (primitive types);

 ссылочные типы (reference types).

Существует также специальный нулевой тип, тип выражения null, который не имеет имени.

Примитивные типы делятся на булевский тип (boolean) и числовые типы. В свою очередь, числовые типы – это целые типы (byte, short, int, long и char) вещественные типы (float и double). Ссылочные типы – это типы классов, интерфейсов и массивов.

Объявление переменных в Java имеет следующий вид:

имя-типа идентификатор-переменной ;

например:

Если несколько переменных имеют один и тот же тип, их можно объявить в одном предложении, перечислив идентификаторы переменных через запятую:

имя-типа идентификатор-переменной-1 , идентификатор-переменной-2 ,;

например:

В соглашениях по кодированию рекомендуется начинать идентификатор-переменной с маленькой буквы. Если имя переменной состоит из нескольких слов, то все они пишутся слитно, причем каждое слово, кроме первого, начинается с большой буквы, например:

double inputValue;

Переменная является указанием места хранения значения переменной в памяти. Переменная примитивного типа всегда содержит значение переменной указанного типа (например, int), а переменная ссылочного типа хранит ссылку (адрес) объекта указанного типа.

Создавать новые переменные можно в любом месте программы.

Логический тип и операции с ними (операции сравнения и присвоения, логические операции, сокращенные логические операции)

В JavaScript имеются следующие типы операций: Операция присвоения присваивает левому операнду значение на базе правого операнда. Базовой операцией присвоения является знак равенства (=), который присваивает левому операнду значение правого операнда. То есть, x = y присваивает значение y переменной x.

Сокращённое обозначение Значение
x += y x = x + y
x -= y x = x – y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y
x <<= y x = x << y
x >>= y x = x >> y
x >>>= y x = x >>> y
x &= y x = x & y
x ^= y x = x ^ y
x |= y x = x | y

Операция сравнения сравнивает операнды и возвращает логическое значение на базе верности сравнения. Операндами могут быть числа, строки, логические значения и объекты. Строки сравниваются на базе стандартного лексикографического порядка с использованием значений Unicode.

Операция Описание Примеры, возвращающие true
Равно (==) Возвращает true, если операнды равны. Если операнды разных типов, JavaScript пытается конвертировать операнды до типа, пригодного для сравнения. 3 == var1 "3" == var1 3 == "3"
Не равно (!=) Возвращает true, если операнды не равны. Если операнды разных типов, JavaScript пытается конвертировать операнды до типа, пригодного для сравнения. var1 != 4 var2 != "3"
Строго равно (===) Возвращает true, если операнды равны и одного типа. 3 === var1
Строго не равно (!==) Возвращает true, если операнды не равны и/или не одного типа. var1 !== "3" 3 !== "3"
Больше (>) Возвращает true, если левый операнд больше правого. var2 > var1
Больше или равно (>=) Возвращает true, если левый операнд больше правого или равен ему. var2 >= var1 var1 >= 3
Меньше (<) Возвращает true, если левый операнд меньше правого. var1 < var2
Меньше или равно (<=) Возвращает true, если левый операнд меньше правого или равен ему.

Логические операции обычно используются с Boolean (булевыми/логическими) значениями; в этом случае возвращается Boolean-значение. Однако операции && и || реально возвращают значение одного из специфицированных операндов, поэтому, если эти операции используются с не-Boolean-значениями, они могут вернуть не-Boolean значение.

Операция Использование Описание
&& expr1 && expr2 (Логическое И) Возвращает expr1, если оно может быть конвертировано в false; иначе возвращает expr2. Таким образом, при использовании с Boolean-значениями, && возвращает true, если оба операнда true; иначе возвращает false.
|| expr1 || expr2 (Логическое ИЛИ) Возвращает expr1, если оно может быть конвертировано в true; иначе возвращает expr2. Таким образом, при использовании с Boolean-значениями, || возвращает true, если хотя бы один из операндов true; если оба операнда false, возвращает false.
! !expr (Логическое НЕ) Возвращает false если её единственный операнд может быть конвертирован в true; иначе возвращает true.

Так как логические выражения вычисляются слева направо, они проверяются на возможность выполнения "сокращённого " вычисления по следующим правилам:

false && что-либо сокращённо вычисляется в false.

true || что-либо сокращённо вычисляется в true.

Целые типы и операции с ними (арифметические, приведение типов, операции сравнения, побитовые операции, операции сдвигов). Арифметические операции принимают числовые значения (литералы или переменные) в качестве операндов и возвращают одиночное числовое значение. Стандартными арифметическими операциями являются сложение (+), вычитание (-), умножение (*) и деление (/).

Операция Описание Пример
% (Modulus) Бинарная операция. Возвращает целочисленный остаток от деления двух операндов. 12 % 5 возвращает 2.
++ (Инкремент) Унарная операция. Добавляет 1 к операнду. Если используется как префикс (++x), добавляет единицу и возвращает значение операнда; если используется как постфикс (x++), возвращает значение операнда и затем прибавляет единицу. Если x равен 3, то ++x устанавливает x в 4 и возвращает 4; а x++ устанавливает x в 4 и возвращает 3.
-- (Декремент) Унарная операция. Вычитает единицу из операнда. Возвращаемое значение аналогично значению для операции инкремента. Если x равен 3, то --x устанавливает x в 2 и возвращает 2; а x-- устанавливает x в 2 и возвращает 3.
- (Унарное отрицание) Унарная операция. Возвращает операнд с изменённым знаком. Если x равен -3, то -x возвращает 3.

Побитовые операции рассматривают свои операнды как набор 32-битных двоичных чисел (нулей и единиц), а не как 10-ричные, 16-ричные или 8-ричные числа. Например, 10-ричное число 9 имеет бинарное представление 1001. Побитовые операции выполняются над такими двоичными представлениями, но возвращают стандартные числовые значения JavaScript.

Операция Использование Описание
Побитовое И a & b Возвращает 1 в каждой битовой позиции, где соответствующие биты обоих операндов равны 1.
Побитовое ИЛИ a | b Возвращает 1 в каждой битовой позиции, где соответствующие биты одного или обоих операндов равны 1.
Побитовое исключающее ИЛИ a ^ b Возвращает 1 в каждой битовой позиции, где соответствующие биты одного но не обоих операндов равны 1.
Побитовое НЕ ~ a Инвертирует биты операнда.
Сдвиг влево a << b Сдвигает двоичное представление a на b битов влево, заполняя справа нулями.

Побитовые Логические Операции

Операнды конвертируются до 32-битных целых и выражаются серией битов (нулей и единиц).

Каждому биту первого операнда соответствует парный бит второго операнда: первый бит - первому, второй - второму, и так далее.

Операция выполняется для каждой пары битов, а результат конструируется побитно.Например, бинарное представление 9 это 1001, а бинарное представление 15 это 1111. Итак, если побитовая операция применяется к этим двум числам, результаты будут такими:
15 & 9 даёт 9 (1111 & 1001 = 1001)

15 | 9 даёт 15 (1111 | 1001 = 1111)

15 ^ 9 даёт 6 (1111 ^ 1001 = 0110) Побитовые операции сдвига принимают два операнда: первый операнд это сдвигаемое количество, а второй специфицирует количество битовых позиций, на которое сдвигается первый операнд. Направление сдвига контролируется применяемой операцией

Вещественный тип данных и операции с ними. Вещественных типов в Java два: float и double. Они характеризуются разрядностью, диапазоном значений и точностью представления, отвечающим стандарту IEEE 754-1985 с некоторыми изменениями. К обычным вещественным числам добавляются еще три значения» 1. Положительная бесконечность, выражаемая константой POSITIVE_INFINITY и возникающая при переполнении положительного значения, например, в результате операции умножения 3.0*6е307. 2. Отрицательная бесконечность NEGATIVE_INFINITY. 3. "Не число", записываемое константой NaN (Not a Number) и возникающее при делении вещественного числа на нуль или умножении нуля на бесконечность. Примеры определения вещественных типов:

float х = 0.001, у = -34.789;

double 21 = -16.2305, z2;

Поскольку к вещественным типам применимы все арифметические операции и сравнения, целые и вещественные значения можно смешивать в операциях. При этом правило приведения типов дополняется такими условиями:

если в операции один операнд имеет тип double, то и другой приводится к типу double;

если один операнд имеет тип float, то и другой приводится к типу float;

в противном случае действует правило приведения целых значений.

Операции присваивания. Условная операция . Простоя операция присваивания (simple assignment operator) записывается знаком равенства =, слева от которого стоит переменная, а справа выражение, совместимое с типом переменной: х = 3.5, у = 2 * (х - 0.567) / (х + 2), b = х < у, bb = х >= у && b. Операция присваивания действует так: выражение, стоящее после знака равенства, вычисляется и приводится к типу переменной, стоящей слева от знака равенства. Результатом операции будет приведенное значение правой части. Операция присваивания имеет еще одно, побочное, действие: переменная, стоящая слева, получает приведенное значение правой части, старое ее значение теряется. В операции присваивания левая и правая части неравноправны, нельзя написать 3.5 = х. После операции х = у изменится переменная х, став равной у, а после у = х изменится у. Кроме простой операции присваивания есть еще 11 составных операций присваивания (compound assignment operators): +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>= ; >>>=. Символы записываются без пробелов, нельзя переставлять их местами.

Все составные операции присваивания действуют по одной схеме:

х ор= а э квивалентно х = (тип х), т. е. (х ор а).

Напомним, что переменная ind типа short определена у нас со значением 1. Присваивание ind +=7.8 даст в результате число 8, то же значение получит и переменная ind. Эта операция эквивалентна простой операции присваивания ind = (short)(ind + 7.8).

Перед присваиванием, при необходимости, автоматически производится приведение типа. Поэтому:

b = b + 10; // Ошибка!

b += 10; // Правильно!

Перед сложением ь + 50 происходит повышение ь до типа int, результат сложения тоже будет типа int и, в первом случае, не может быть Присвоен переменной ь без явного приведения типа. Во втором случае перед присваиванием произойдет сужение результата сложения до типа byte.

Условная операция - единственная в JavaScript, принимающая три операнда. Она может дать одно или другое значение на базе условия. Синтаксис таков:

condition ? val1 : val2
Если condition - true, операция имеет значение val1. Иначе - значение val2. Вы можете использовать условную операцию в любом месте, где может использоваться стандартная операция.

Например,

status = (age >= 18) ? "adult" : "minor"

Этот оператор присваивает значение "adult" переменной status, если age равен 19 или более. Иначе переменной status присваивается значение "minor".

«Java runtime что это за программа» — речь идёт о программе, которая у большинства пользователей вызывает вопросы по весьма объективным причинам. Дело в том, что мало кто её ставит отдельно на компьютер. У большинства она устанавливается сама, то есть, берётся неизвестно от куда. Оттуда и возникают вопросы.

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

Стоит, наверное, начать с того, что же такое Java. Это один из самых популярных языков программирования, который используется при разработке приложений в очень разных сферах и реализациях. Выпущен он был ещё в далёком 1995-ом году, потому не стоит удивляться тому, что просто огромное количество популярных программ написаны именно на Java.

Для запуска программ, которые написаны на этом замечательном языке программирования необходим компилятор или специальное программное обеспечение. Как раз одно из таких приложений и является героем этой статьи. Почему же оно вызывает столько вопрос и такую неоднозначную реакцию на себя мы с удовольствием объясним дальше.

Java Runtime Environment что это за программа

То, что без специального обеспечения программы написанные на Java не запустятся, разработчики знают и прекрасно понимают. Стоит им сделать комплимент, потому что в этом направлении они поработали очень результативно. Потому, чтобы лишний раз не усложнять жизнь пользователей, они включили установку необходимого ПО в установку большинства программ на Java.

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

Теперь, когда Вы знаете, что же это за программа — Java Runtime Environment, понимаете, что не стоит её удалять, если хотите, что бы все приложения на Java работали.

>> Что такое JRE?

Обучающие курсы:

Что такое JRE?

Что такое JRE?

JRE - это Java Runtime Environment. В переводе по русски JRE - это среда выполнения для языка Java. Это минимальная реализация виртуальной машины, необходимая для исполнения Java-приложений, без компилятора и других средств разработки. JRE состоит из виртуальной машины - Java Virtual Machine - и библиотеки Java-классов.

Скачать JRE с официального сайта: http://www.oracle.com/technetwork/articles/javase/index-jsp-138363.html

JRE распространяется свободно и для большинства платформ может быть загружена с сайта Oracle.

Набор программ и пакетов классов JRE содержит все необходимое для выполнения байт-кодов,в том числе интерпретатор java (в прежних версиях - облегченный интерпретатор jre) и библиотеку классов. Это часть JDK, не содержащая компиляторы, отладчики и другие средства разработки. Именно Oracle JRE или его аналог, созданный другими фирмами, присутствует в тех браузерах, которые умеют выполнять программы на Java, в операционных системах и системах управления базами данных.

Хотя JRE входит в состав JDK, корпорация Oracle распространяет этот набор и отдельным файлом.

Чем отличается JRE, JVM и JDK?

jvm - Java Virtual Machine - среда ("виртуальная"), в которой выполняется скомпилированный код

jre - Java Runtime Environment. Это просто пакет, который включает в себя JVM и минимальный набор библиотек для работы программ. И еще браузерный плагин, где будут выполняться апплеты.

Говоря о языке программирования Java можно часто увидеть такие аббревиатуры как: Java SE, JRE, JDK, IDE. Рассмотрим их.

Java SE

Java Standard Edition (Java SE) - это стандартное издание Java, именно под него разрабатываются клиентские приложения и этот сайт полностью посвящён Java SE. Приложения могут работать самостоятельно или в качестве апплетов веб-браузера.

Кроме стандартного издания бывают:

  • Java Enterprise Edition (Java EE) для разработки приложений на стороне сервера, таких как Java сервлеты, JavaServer Pages (JSP) и JavaServer Faces (JSF).
  • Java Micro Edition (Java ME) для разработки приложений под мобильные устройства, такие как телефоны.

JRE

Java Runtime Environment - среда выполнения Java. Это виртуальная машина Java, необходимая для запуска Java программ на компьютерах пользователя. В ней имеется всё, что необходимо для запуска Java приложений на вашей системе. JRE охватывает нужды большинства пользователей.

JDK

JDK (Java SE Development Kit) - набор инструментов разработчика для создания программ на Java. Включает в себя JRE плюс инструменты для разработки, отладки и мониторинга Java приложений.

Итак, чтобы определиться, что скачивать: JRE или JDK? Ответьте на вопрос: вы хотите только запускать Java программы или ещё и разрабатывать их? Если только запускать, то вам достаточно JRE. Если вы хотите разрабатывать программы, то вам необходим JDK. Набор разработчика JDK уже включает JRE, поэтому нет необходимости скачивать их оба по отдельности.

Версии Java

Кроме рассмотренных различных изданий, а также разных версий пакетов (для конечного пользователя и для разработчика), имеются номерные версии. В настоящее время актуальной является версия JDK 1.10 . Кстати, JDK 1.10 = JDK 10.

Если вас интересуют ранние выпуски (что-то вроде беты), то для одинадцатой версии вы их найдёте по адресу

IDE

IDE (integrated development environment) - интегрированная среда разработки, предназначена для содействия разработчику, ускоряет процесс разработки программ. Обычно включает в себя редактор с подсветкой синтаксиса, справкой, автоматизированной компиляцией и запуском программ. IDE может быть создана для любого языка программирования, либо для конкретного языка, например, для Java. Интегрированная среды разработки бывают бесплатными и платными. Хорошей бесплатной IDE для Java является NetBeans.