One can see from Table 8 that Java and C# have many things in common. C#'s syntax
sometimes allows a slightly more elegant way of coding (see references). At this point in time,
the C# language specification has a few additional features compared to Java. However, Java
offers a large amount of class libraries and development support that C# cannot offer yet.
6.2.4 Comparison of the Java Runtime and the CLR
The core part of the Java Runtime Environment and the Common Language Runtime are the
execution systems, which are the Java Virtual Machine (JVM), and the Virtual Execution System
(VES), respectively. Following is a table that compares the features of the two.
Interpretation of intermediate code from various languages No* Yes
Class loader enforcing security
(Consistency and accessibility checks)
Garbage collection, exception handling, stack tracing
Management of threads and contexts
Many platforms supported
Table 9: Comparison of JVM and VES
* Third party vendors offer language translators to Java.
The VES will be available initially only on Windows operating systems, and other platforms are
unlikely to be supported in the near future. Java Virtual Machines, on the other hand, are
available on many different platforms, such as Windows, Macintosh, Unix, or Linux.