Виртуальная машина Java (JVM) и кроссплатформенные Модификации.
Итак, как реализуется кроссплатформная? Это включает в себя разговор о виртуальной машине Java (JVM).
JVM также является программным обеспечением, и разные платформы имеют разные версии. Исходный код Java, который мы записываем, будет генерировать файл .class, называемый файл bytecode после компиляции. Виртуальная машина Java отвечает за перевод файла Bytecode в код машины под определенной платформой, а затем за его запуск. Другими словами, пока соответствующий JVM установлен на разных платформах, вы можете запустить файл ByteCode и запустить программу Java, которую мы написали.
Во время этого процесса программа Java, которую мы написали, не внесла никаких изменений.
JVM-это «мост», а «промежуточное программное обеспечение», которое является ключом к кроссплатформенной реализации. цель.
ПРИМЕЧАНИЕ. Байт -код, сгенерированный компиляцией и генерацией на разных платформах, одинаков, но машинный код, переведенный JVM, отличается.
Следовательно, запуск программ Java должен иметь поддержку JVM, потому что результат компиляции не является машинным кодом, и он должен быть снова переведен JVM до выполнения. Даже если вы упаковываете программы Java в исполняемые файлы (например, .exe), вам все равно нужна поддержка JVM.
Примечание: кроссплатформенные программы Java, а не JVMS. JVM разрабатывается в C/C ++ и составлен машинный код.
О эффективности выполнения JVM
В последние несколько лет запуска Java люди имели разные мнения.
Тем не менее, JVM имеет возможность перевести и сохранить наиболее часто используемый байт -код в машинный код, процесс, известный как мгновенная компиляция. Этот метод действительно очень эффективен, что привело к использованию виртуальных машин на платформе Microsoft .NET.
Своевременные компиляторы теперь довольно выдающиеся и даже стали конкурентами традиционных компиляторов, а в некоторых случаях даже превосходят традиционные компиляторы, потому что JVM может отслеживать информацию о времени выполнения. Например, мгновенный компилятор может отслеживать и оптимизировать код, который часто используется, устраняя вызовы функций (т.е. «Embedded»).
Тем не менее, у Java есть некоторые дополнительные накладные расходы, которых C/C ++ не имеет, и ключевые приложения медленнее. Например, Java принимает независимый от платформы метод рисования, а выполнение программ GUI (клиентские программы) медленно;
Отказ клиентского рынка
Библиотека GUI Java не превосходна, интерфейс не является дружелюбным, и большинство пользователей не привыкли к нему;
Что еще более неприемлемо, так это то, что после того, как Microsoft разбивает свои собственные интересы и Sun, Windows больше не имеет предварительной установки JVM. IRE, но можете ли вы ожидать, что он узнает о JVM и правильно установите настройки?
Хотя вы можете интегрировать JVM в свою программу, автоматически установить и настроить его, и не разрешать вмешательство пользователя, хотите ли вы поставить JVM, которая намного больше, чем ваша программа? Это может быть приемлемо для программного обеспечения. Сколько потрачено на дисковое пространство?
Таким образом, несколько клиентских программ для обычных пользователей, которые находятся непосредственно на рынке, разрабатываются в Java. Если вы хотите заняться разработкой клиентов, рекомендуется изучать C/C ++ и .NET, которые имеют большие преимущества в разработке клиентов Window.
Различные причины предназначены для того, чтобы быть неблагоприятными, чтобы быть представленными на рынке и принимаются обычными пользователями. Но опять же, развитие клиентов не является первоначальным намерением Java.
Java классы и объекты концепции
Java-это объектно-ориентированный язык программирования.
Занятия в Java можно рассматривать как обновленную версию структур на языке C. Структура - это построенный тип данных, который может содержать разные элементы (переменные), и типы данных каждого элемента могут быть разными; Например:
#include <stdio.h> int main () {// Определить Студент Студент Студент {// Имя переменной * / Члены операционной структуры stu1.name = "xiao ming"; имя, stu1.age, stu1.score); Результаты работы:
Возраст Сяо Мин 15, а его оценка - 92,500000
Занятия в Java также являются типом конструктивных типов данных, но были расширены. Например:
Общедоступный класс Demo Включенная функция void Shower () {System.out.println (имя + «Возраст - + возраст +», оценка - + оценка); Студент STU1 = Новый Студент (); ); Результаты работы:
Сяо Мин возраст 15, а его оценка - 92,5
На языке C определение структурных переменных может быть завершено по имени структуры и пространству памяти может быть выделено; Пространство распределяется.
Аналогию можно сравнить с чертежами, объекты можно сравнить с частями, а чертежи объясняют параметры деталей, а задачи, которые они выполняют;
В Java, используя новое ключевое слово, вы можете создавать объекты через классы, то есть производить чертежи в части.
Примечание: класс - это просто рисунок, который играет объяснение и не занимает пространство памяти;
Переменные и функции, содержащиеся в классе, имеют конкретные имена.
Объектно -ориентированное программирование (ООП)
Занятия являются общей концепцией. Занятия можно рассматривать как обновленную версию структур. -Поседание.
Поскольку Java, C ++ и другие языки поддерживают классы и объекты, написание программ на этих языках также называется объектно-ориентированным программированием, и эти языки также называются объектно-ориентированными языками программирования. Поскольку язык C не поддерживает концепции классов и объектов, он называется ориентированным на процесс языка программирования.
На самом деле, объектно-ориентированный-это просто обработанное обновление.
На языке C повторные кодовые блоки, которые выполняют определенную функцию, могут быть определены как функции, а функции с классом функций объявляются в файле заголовка, а функции различных типов объявляются в разных файлах заголовка для выполнения функций , легко писать и позвонить.
В Java кодовый блок, который завершает определенную функцию, может быть определен как метод, а методы с аналогичными функциями могут быть определены в классе, то есть в исходном файле (поскольку исходный файл может содержать только один открытый класс), Несколько исходных файлов могут быть расположены в папке, которая имеет определенное имя, называемое пакетом.
Выше выше C ++, а Java - это:
Объектно-ориентированное программирование не имеет абсолютно преимущества в эффективности выполнения программного обеспечения.