Mono是一個自由開放源代碼的跨平臺的實現(xiàn)Microsoft .NET Framework的軟件項目,它能夠在Linux、Mac OS X、BSD等操作系統(tǒng)上運行。Mono是由Novell的員工Miguel de Icaza在2001年所創(chuàng)立的,一開始其主要目的是為了解決Linux下的應用程序不夠豐富這一問題。Mono是一個優(yōu)秀的跨平臺解決方案,可讓開發(fā)人員在不同的硬件架構和操作系統(tǒng)上運行自己的代碼。
// Mono中的Hello World程序 using System; public class HelloWorld { public static void Main() { Console.WriteLine("Hello World!"); } }
Java虛擬機(Java Virtual Machine,JVM)即Java語言的虛擬運行環(huán)境,簡稱為“虛擬機”。Java虛擬機具有跨平臺性,可以在多種操作系統(tǒng)上運行Java字節(jié)碼(.class文件),由此實現(xiàn)跨平臺的特性。其中,最常用的Java虛擬機是Oracle公司的HotSpot虛擬機,HotSpot虛擬機執(zhí)行速度快,垃圾回收效率高,被廣泛應用于Java開發(fā)領域。
// Java中的Hello World程序 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
盡管Mono和Java虛擬機有許多相似之處,它們之間還是存在一些區(qū)別。比如,Java虛擬機需要將Java程序先編譯為字節(jié)碼,再由虛擬機解釋執(zhí)行,而Mono則是將C#代碼直接編譯為機器碼進行執(zhí)行。此外,Java虛擬機支持的語言包括Java、Scala、Groovy等,而Mono則可支持C#、F#等多種語言。