"141.8.183.7 - 141.8.183.7"

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

Java - это высокоуровневый, независимый от платформы, объектно-ориентированный, функциональный язык программирования и среда выполнения.

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

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

Java спроектирован так, чтобы иметь как можно меньше зависимостей реализации, чтобы разработчики приложений могли писать один раз, запускать где угодно или иногда писать один раз, запускать везде (код, который выполняется на одной платформе, не нужно перекомпилировать для запуска на другой). Первоначально Java была разработана Джеймсом Гослингом в Sun Microsystems (которая полностью слилась с корпорацией Oracle 27 января 2010 года) и была выпущена в 1995 году как основной компонент Java-платформы Sun Microsystems. Java была начата Джеймсом Гослингом в июне 1991 года как проект под названием "Дуб".

Платформа 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 (JRE с java.com. На компьютерах Macintosh пользователю предлагается загрузить Java, когда приложение требует его запуска. В системах, подобных Linux, Java обычно устанавливается через менеджер пакетов.

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

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

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

Версии

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

Java SE 12  [JSR 386]    (March 19, 2019)
Java SE 11  [JSR 384]    (September 25, 2018)
Java SE 10  [JSR 383]    (March 20, 2018)
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)
JDK Beta                 (1995)

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

Java Standard Edition 12 (12) - (March 19, 2019)
Java Standard Edition 11 (11.0.2) - (January 15, 2019)
Java Standard Edition 10 (10.0.2) - (July 17, 2018)
Java Standard Edition 9 (9.0.4) - (January 16, 2018)
Java Standard Edition 8 Update 202 (1.8.0_202) - (January 15, 2019)
Java Standard Edition 7 Update 80 (1.7.0_80) - (April 14, 2015)

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

Java SE доступна для скачивания.

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

Java SE 12 -  September 2019 for OpenJDK
Java SE 11 -  At least September 2022 for AdoptOpenJDK
Java SE 10 -  September 2018
Java SE 9  -  March 2018
Java SE 8  -  January 2019 (commercial user) | December 2020 (personal user)
Java SE 7  -  Apr 2015
Java SE 6  -  Feb 2013
J2SE 5.0   -  Oct 2009
J2SE 1.4   -  Oct 2008

Начальная помощь

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

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

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

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), которая может быть выполнена позже с помощью команды java.

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

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

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

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

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

Фреймворки Java, библиотеки и программное обеспечение

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

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

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

Генеральный:

Classpath:

String, StringBuilder и toString :

equals и hashCode :

API Java Platform SE:

Обобщения:

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

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

Отладка:

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

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

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

Чаты