|
Багато друзів, як і я, які довго користуються JAVA, але зв'язок і різниця між JDK, JRE та JVM завжди були нечіткими. Сьогодні я напишу цю статтю, щоб розібратися у стосунках між цими трьома.
JDK : Java Development ToolKit. JDK є ядром усієї JAVA, включно з Java Runtime Environment, низкою інструментів Java (javac/java/jdb тощо) та бібліотеками на основі Java (тобто Java-API включають rt.jar). Наймасовішим JDK — це JDK, випущений Sun, окрім Sun, існує багато компаній і організацій, які розробили власний JDK, наприклад, іноземні компанії IBM створили свій JDK, а також у Taobao розробили власний JDK, різні організації розробили свій JDK для покращення в певних аспектах, щоб адаптуватися до власних потреб, наприклад, JDK від IBM вважається значно ефективнішим за JDK від SUN. Але в будь-якому разі, нам все одно потрібно спочатку опанувати базовий Sun JDK. Існує три версії JDK: J2SE, стандартне видання, стандартне видання — це версія, яку ми зазвичай використовуємо J2EE, Enterpsise edtion, Enterprise Edition, застосовуючи цей JDK для розробки J2EE додатків. J2ME, мікроредактор, переважно використовується для Java-додатків на мобільних пристроях, вбудованих пристроях
Ми часто використовуємо JDK для позначення Java API, Java API — це інтерфейс програмування додатків Java, насправді це деякі класи Java, написані нашими попередниками, включно з важливими мовними структурами та базовою графікою, мережевим і файловим введенням/виведенням тощо, які ми називаємо класами, написаними нашими попередниками у власних програмах, як основою для власної розробки. Звісно, у нашому розпорядженні з'являється все більше сторонніх бібліотек з кращою продуктивністю або потужнішими функціями.
JRE: Java Runtime Enviromental. Іншими словами, усі програми на Java мають бути під JRE для запуску. Включає основні бібліотеки JVM і JAVA та підтримуючі файли. Порівняно з JDK, він не містить інструментів розробки — компіляторів, налагоджувачів та інших інструментів.
JVM: Java Virtual Mechinal (JAVA Virtual Machine). JVM є частиною JRE — вигаданого комп'ютера, який реалізується шляхом імітації різних комп'ютерних функцій на реальному комп'ютері. JVM має власну повну апаратну архітектуру, таку як процесори, стеки, регістри тощо, а також відповідну систему інструкцій. Основне завдання JVM — інтерпретувати власний набір інструкцій (тобто байткод) і відображати його з локальним набором інструкцій процесора або системними викликами ОС. Мова Java працює кросплатформенно, тобто є іншою операційною системою, використовуючи різні правила відображення JVM, щоб зробити її незалежною від операційної системи і повністю кросплатформеною. JVM не цікавлять верхні Java-вихідні файли, його цікавлять лише класові файли, які генерують ці вихідні файли. Файл класу складається з набору інструкцій JVM, таблиці символів та додаткової інформації. Наступна ілюстрація дає гарний огляд взаємозв'язку між JDK, JRE та JVM:
Фактична ситуація нашої розробки така: після розробки власної JAVA-програми за допомогою JDK (виклик JAVA API) ми компілюємо наші текстові java-файли у JAVA-байткод через компілятор (javac) у JDK, запускаємо ці JAVA-байткоди на JRE, JVM аналізує ці байткоди і відображає їх у набір інструкцій процесора або системні виклики ОС.
|