Подтвердить что ты не робот

Что такое эквивалентная JVM в С#?

JVM требуется для запуска Java-приложения.

Я хотел знать, есть ли какой-либо эквивалент в С#?

Если да, то что это такое?

4b9b3361

Ответ 1

Common Language Runtime или CLR. Это среда выполнения, которая поддерживает не только С#, но и другие языки .NET, такие как Visual Basic.NET. Как правило, каждый язык предоставляет разработчикам подмножество функций, доступных в CLR (например, перегрузка метода исключительно с помощью типа возврата обычно не поддерживается в С#, но поддерживается CLR).

Так же, как Java компилируется в байт-код, С# и другие языки .NET компилируются на Microsoft Intermediate Language (MSIL) - единственный язык, который предоставляет полный набор функций CLR.

Конечно, С# определяется как язык. Нет никаких причин, по которым его нельзя заставить запускать на других режимах работы или даже в режиме интерпретации. Но "эквивалент" "JVM" (подразумевающий значение по умолчанию) - это CLR.

Ответ 2

Для запуска приложений на С# вам нужно иметь Common Language Runtime (CLR).

Ответ 3

Нет эквивалента .NET для JVM, потому что .NET не запускается внутри виртуализованной изолированной среды, такой как Java.

Java: Source > Java Bytecode > Intepreted by JVM, скомпилированный для конкретной платформы.

.NET: Source > MSIL > Скомпилирован в собственный код при первом запуске сборки MSIL.

Таким образом, код .NET может быть скомпилирован в MSIL, перенесен в другую архитектуру компьютера, и пока что-то (например, Mono) может читать MSIL и компилировать код машины, он будет работать. С Java код всегда будет работать изолированно в JVM.

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

С Java только люди, которые могут на законных основаниях предлагать JVM на определенной платформе, это Oracle/Sun/Java. С .NET любой может решить реализовать версию CLR по частям или в целом на данной платформе.