Java (не путать с JavaScript или JScript) - это объектно-ориентированный язык программирования общего назначения, предназначенный для использования в сочетании с виртуальной машиной Java (JVM). "Java-платформа" - это название вычислительной системы, в которой установлены инструменты для разработки и запуска программ Java. Используйте этот тег для вопросов, относящихся к языку программирования Java или инструментам платформы Java.

Java является high-level, независимая от платформы, object-oriented, functional язык программирования и среда выполнения.

Язык Java извлекает большую часть своего синтаксиса из C и С++, но его объектная модель проще, чем у последнего, и имеет меньше объектов низкого уровня. Java-приложения обычно скомпилированы в bytecode (называемые файлы классов), который может быть запущен JVM (виртуальной машиной Java), независимо от компьютерной архитектуры. JVM часто компилирует код на собственный машинный код для оптимизации производительности.

JVM управляет памятью с помощью сборщика мусора (см. ), чтобы обрабатывать удаление объекта из памяти, когда объекты больше не используются. Java типизирующая дисциплина является статичной, сильной, безопасной, номинативной и манифестной. Java поддерживает такие функции, как reflection и взаимодействует с C и С++ через JNI (Java Native Interface).

Java рассчитана на максимально возможное количество зависимостей реализации, предназначенное для того, чтобы разработчики приложений записывали один раз, работали где угодно (код, который выполняется на одной платформе не нужно перекомпилировать, чтобы работать на другом). Java была первоначально разработана Джеймс Гослинг в Sun Microsystems (которая слилась с Oracle Corporation 20 апреля 2009 г.) и была выпущена в 1995 году в качестве ядра компонент платформы Java Sun Microsystems.

платформа Java - это имя, данное Sun (теперь Oracle) для вычислительных систем, в которых установлены инструменты для разработки и запуска программ Java. Платформа имеет широкий спектр инструментов, которые могут помочь разработчикам эффективно работать с языком программирования Java.

Платформа состоит из двух основных пакетов программного обеспечения:

  • Java Runtime Environment (JRE) : требуется для запуска приложений и апплетов Java.
  • Java Development Kit (JDK) : требуется для разработки приложений и апплетов Java. JDK поставляется с JRE.

В этом разделе мы подробно рассмотрим, что делают эти два программных компонента платформы Java.

Фон

Основная эталонная реализация Java является открытым исходным кодом (OpenJDK) и поддерживается крупными компаниями, включая Oracle, Apple, SAP, и IBM.

Очень немногие компьютеры могут запускать программы Java напрямую. Поэтому среду Java обычно можно получить, установив подходящий программный компонент. На компьютерах с Windows это обычно делается путем загрузки бесплатной среды Java Runtime Environment (JRE) из java.com. На компьютерах Macintosh пользователю предлагается загрузить Java, когда запускается приложение, требующее его запуска. В Linux-подобных системах Java обычно устанавливается через диспетчер пакетов.

Разработчики часто нуждаются в дополнительных инструментах, которые доступны в бесплатном Java Development Kit, который для Windows и Mac должен быть загружен из Oracle и установлен вручную.

Java компилируется в bytecode, который скомпилирован JVM в собственный машинный код. Компиляция выполнена just-in-time (JIT). Первоначально это считалось хитом производительности, но улучшения компиляции JVM и JIT сделали это менее опасным. В некоторых случаях JVM может быть даже быстрее, чем собственный код, скомпилированный для установки на более раннюю версию процессора для соображений обратной совместимости.

Примечание. Существуют другие поставщики, хотя почти все имеют лицензионные платежи. Для Linux и других платформ обратитесь к документации по операционной системе.

Версия

Известные версии Java, имена кодов (в скобках [] и даты выпуска (в круглых скобках) включают:

Java SE 9   [JSR 376]    (September 21, 2017)
Java SE 8   [JSR 337]    (March 18, 2014)
Java SE 7   [Dolphin]    (July 28, 2011)
Java SE 6   [Mustang]    (December 11, 2006)
J2SE 5.0    [Tiger]      (September 30, 2004)
J2SE 1.4    [Merlin]     (February 6, 2002)
J2SE 1.3    [Kestrel]    (May 8, 2000)
J2SE 1.2    [Playground] (December 8, 1998)
JDK 1.1                  (February 19, 1997)
JDK 1.0                  (January 23, 1996)

Последние стабильные версии:

Java Standard Edition 9 (9.0.4) - (January 16, 2018)
Java Standard Edition 8 Update 162 (1.8.0_162) - (January 16, 2018)
Java Standard Edition 7 Update 80 (1.7.0_80) - (April 14, 2015)

Для получения дополнительных кодовых имен и дат выпуска посетите J2SE Code Names. Чтобы просмотреть примечания к выпуску для каждой версии JDK, посетите статью Википедии о истории версий Java.

Java SE 9 теперь выпущен и доступен для скачивания.

Конец публичных обновлений (ранее называемый End Of Life, также называемый EoPU), даты для свободно распространяемого дистрибутива из Oracle:

Java SE 8  -  Sep 2017
Java SE 7  -  Apr 2015
Java SE 6  -  Feb 2013
J2SE 5.0   -  Oct 2009
J2SE 1.4   -  Oct 2008

Начальная справка

Новый для Java или нужна помощь для запуска вашей первой программы Java? См. Раздел раздел "Учебники Oracle Java" в разделе "Начало работы".

Прежде чем задавать вопрос, выполните поиск, чтобы узнать, было ли задано раньше (у нас много дубликатов, некоторые из них перечислены ниже в разделе Часто задаваемые вопросы) и читайте Написание идеального вопроса, чтобы узнать, как заставить Джона Скита ответить на ваш вопрос.

Соглашения об именах

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

  • Имена типов (классы, интерфейсы, перечисления и т.д.) должны начинаться с заглавной буквы и использовать первую букву каждого последующего слова. Примеры включают: String, ThreadLocal и NullPointerException. Это иногда называют PascalCase.
  • Имена методов и полей должны быть camelCased; то есть они должны начинаться с строчной буквы и загладить первую букву каждого последующего слова. Примеры: indexOf, printStackTrace, interrupt.
  • Константные имена выражений (static final неизменяемые объекты) должны быть записаны в ALL_CAPS_SNAKE_CASE, с подчеркиванием, разделяющим каждое слово. Примеры: YELLOW, DO_NOTHING_ON_CLOSE. Это также относится к значениям класса Enum. Тем не менее, ссылки static final на неизменяемые объекты должны быть camelCased.

Hello World - Ваша первая программа

Код типичной программы Hello World:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Компиляция и вызов программы Hello World:

javac -d . HelloWorld.java
java -cp . HelloWorld

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

Дополнительная информация:

Полезные IDE для Java

Ресурсы для начинающих

Ежедневные обновленные ресурсы

Расширенные ресурсы

Ядра, библиотеки и программное обеспечение Java

Книги и ресурсы программирования Java

Часто задаваемые вопросы

Люди часто спрашивают о следующих Java-темах:

Общие:

Classpath:

String, StringBuilder и toString:

equals и hashCode:

API платформы Java Platform:

Дженерики:

Классы и объекты:

Арифметика и преобразования:

Debugging:

Thread и многопоточность:

Взаимодействие с операционной системой:

(Редакторы, пожалуйста, укажите только те вопросы, которые на самом деле часто задаются.)

Chatrooms