Ответ 1
Да, это может сбить с толку.
Ты не просил об этом, но я начну отсюда. JVM - виртуальная машина Java. Это программа, которая может читать скомпилированный Java-код (файлы .class и .jar файлы, которые являются просто .zip файлами, содержащими пакет .class файлов, упакованных вместе) и выполнять его. Существует много JVM, например, вам нужна JVM для Windows, одна для Linux, одна для OSX и т.д., Но есть много альтернативных JVM, JVM для встроенного устройства и т.д. (Многие не согласятся и говорят, что JVM - это только одна, и это спецификация. Однако обычно системный администратор скажет "JVM", чтобы указать фактическое бинарное выполнение на сервере).
Вы также не просили следующего. JRE - среда выполнения Java. Он включает все необходимое для запуска приложения Java, то есть самого JVM, стандартной библиотеки и множества других файлов. Стандартная библиотека сама по себе очень важна, поскольку она содержит много полезных вещей, которые вы будете использовать при разработке приложений Java. Он содержит все материалы в пакетах java. * И некоторые частные вещи в пакетах com.sun, com.oracle.
Различные версии Java (1.0, 1.1 и т.д. вплоть до 1.7, также известные как Java 7) обычно содержат улучшения как для JVM, так и для стандартной библиотеки, поэтому эти два обычно нужно запускать вместе и упаковываться вместе в JRE.
Если вы используете какую-либо программу Java на своем компьютере, у вас установлена JRE.
JDK - это Java Development Kit. Он содержит JRE, а также множество других полезных материалов для разработки Java-приложений. Это включает в себя, очевидно, компилятор (который также содержится в JRE по какой-то веской причине, но теперь вы можете игнорировать этот факт), утилиту JAR для создания файлов .jar, множество инструментов для "декомпиляции" файлов классов, проверки файлов .jar, переупаковать их и т.д.
Он также обычно содержит документацию для стандартной библиотеки, а также все источники стандартной библиотеки, поскольку они полезны для разработчиков для чтения и проверки. Если вы хотите серьезно разработать Java-приложения, вам нужен JDK.
Говоря о JavaSE, JavaEE, JavaME и т.д., это так называемые "издания". В принципе, поскольку экосистема Java огромна, Sun решила предложить Java в разных выпусках:
- JavaSE: стандартная версия, она обычно подходит для программного обеспечения на стороне клиента, обычных приложений и т.д.
- JavaME: это мобильная версия, с которой были сделаны небольшие игры на старых телефонах, но в основном это "меньшая" версия Java, подходящая для процессоров с очень низкой пропускной способностью.
- JavaEE: это "корпоративная версия". Он используется для разработки серверной части, поэтому он включает в себя множество библиотек, используемых на стороне сервера.
Что касается нумерации, они немного перепутали ее. Фактически, после Java 1.4 они создали JCP, чтобы вовлечь сообщество в разработку самой Java, и начиная с Java 1.5 он официально называется "Java 5", несмотря на то, что большинство в индустрии называют его 1.5. Кроме того, Java 1.2 был Java 2, но все, кого я знаю, который не был работающий в Sun в то время, всегда называл его 1.2.