Java - это популярный язык программирования высокого уровня. Используйте этот тег, если у вас есть проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [gradle] и [maven].

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

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

JVM управляет памятью с помощью сборщика мусора (см. garbage-collection) для обработки удаления объектов из памяти, когда объекты больше не используются. дисциплина вводав Java является статичной, строгой, безопасной, именительной и манифестной. Java поддерживает такие функции, как отражениеи взаимодействие с C и C ++ через JNI (собственный интерфейс 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 компилируется в байт-код, который затем компилируется JVM в собственный машинный код. Компиляция выполнена точно в срок(JIT). Первоначально это рассматривалось как снижение производительности, но улучшения компиляции JVM и JIT сделали это менее серьезной проблемой. В некоторых случаях JVM может быть даже быстрее, чем собственный код, скомпилированный для более старой версии процессора, из соображений обратной совместимости. Начиная с Java 9, он может быть скомпилирован заранее(AOT).

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

Версии

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

Java SE 14        [JSR 389]    (March 17, 2020)
Java SE 13        [JSR 388]    (September 17, 2019)
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 (1.8)   [JSR 337]    (March 18, 2014)
Java SE 7 (1.7)   [Dolphin]    (July 28, 2011)
Java SE 6 (1.6)   [Mustang]    (December 11, 2006)
J2SE 5.0 (1.5)    [Tiger]      (September 29, 2004)
J2SE 1.4          [Merlin]     (February 13, 2002)
J2SE 1.3          [Kestrel]    (May 8, 2000)
J2SE 1.2          [Playground] (December 4, 1998)
JDK 1.1                        (February 19, 1997)
JDK 1.0                        (January 23, 1996)
JDK Beta                       (1995)

Начиная с Tiger, каждая версия имеет два номера версии: внутренний номер, такой как 1.5.0, и внешний номер, такой как 5.0. Начиная с Java SE 10, новые версии будут выпускаться каждые шесть месяцев.

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

Java Standard Edition 14 (14.0.2) - (July 14, 2020)
Java Standard Edition 13 (13.0.2) - (January 14, 2020)
Java Standard Edition 12 (12.0.2) - (July 16, 2019)
Java Standard Edition 11 (11.0.8) - (July 14, 2020)
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 261 (1.8.0_261) - (July 14, 2020)
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 14 -  September 2020 for OpenJDK
Java SE 13 -  March 2020 for OpenJDK
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; то есть они должны начинаться со строчной буквы и начинаться с заглавной буквы первой буквы каждого последующего слова. Примеры : {{Х0}} , {{Х1}} , {{Х2}} .
  • Имена постоянных выражений (static final неизменяемые объекты) должны быть записаны в ALL_CAPS_SNAKE_CASE, с подчеркиванием, разделяющим каждое слово. Примеры : {{Х1}} , {{Х2}} . Это также относится к значениям класса 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), которую можно выполнить с {{ X0}} позже.

Больше информации:

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

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

Интернет-компиляторы

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

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

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

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

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

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

Общая:

Classpath :

String, StringBuilder и toString:

equals и hashCode:

API Java Platform SE:

Обобщения :

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

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

Отладка :

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

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

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

Чаты