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

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

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

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

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

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

Задний план

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

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

Очень немногие компьютеры могут запускать Java-программы напрямую. До Java 9 предполагалось, что у пользователей, запускающих программы Java, в системе должна быть установлена ​​JRE (Java Runtime Environment). Современные программы Java, предназначенные для запуска непосредственно на клиентских компьютерах, теперь поставляются со своими собственными установщиками.

Версии

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

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

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

Дополнительные кодовые имена и даты выпуска см. На странице Кодовые имена Java SE. Чтобы просмотреть примечания к выпуску для каждой версии JDK, посетите статью в Википедииоб истории версий Java.

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

Java поставляется в версиях LTS (Long-Term-Support) и не-LTS. Каждый поставщик сам выбирает, как поступать с LTS-версиями. Некоторые (Oracle OpenJDK) имеют одинаковое короткое окно поддержки для всех выпусков, LTS или нет. Некоторые (Amazon Corretto) вообще не удосуживаются выпускать версии без LTS. Большинство поставщиков выпускают все версии, которые будут поддерживать версии LTS гораздо дольше.

Версии LTS — это Java 8, 11 и 17.

Основные поставщики:

  • AdoptOpenJDK, также известный как Adoptium - бесплатные версии LTS и версии без LTS, версии LTS поддерживаются долгое время. Рекомендуемые.
  • Oracle OpenJDK. Обратите внимание, что они поддерживаются только в течение 6 месяцев, даже так называемые выпуски LTS (долгосрочная поддержка). Вам нужно будет обновить как обновления Java.
  • Oracle JavaSE— лицензия для тех, кому нужна коммерческая поддержка. Версии LTS и не-LTS, версии LTS поддерживаются в течение длительного времени. Доступна бесплатная, но очень ограниченная по лицензии тестовая версия.
  • Amazon Coretto - бесплатно, поддерживается Amazon, оптимизировано только для версий AWS, LTS.
  • Еще много коммерческих предложений.

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

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

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

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

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

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

  • Имена типов (классы, интерфейсы, перечисления и т. Д.) Должны начинаться с заглавной буквы и с заглавной буквы первой буквы каждого последующего слова. Примеры включают: String, ThreadLocal и NullPointerException. Это иногда называют PascalCase.
  • Имена методов и полей должны быть в camelCased; то есть они должны начинаться со строчной буквы и начинаться с заглавной буквы первой буквы каждого последующего слова. Примеры : {{Х0}} , {{Х1}} , {{Х2}} .
  • Имена постоянных выражений (неизменяемые объекты static final) должны быть записаны в ALL_CAPS_SNAKE_CASE, с подчеркиванием, разделяющим каждое слово. Примеры: YELLOW, DO_NOTHING_ON_CLOSE. Это также относится к значениям класса Enum. Однако ссылки static final на неизменяемые объекты должны иметь верблюжий регистр.

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 и многопоточность:

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

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

Чаты