Comparing C# and Java
by Budi Kurniawan06/07/2001
C# (C-Sharp) is Microsoft's new programming language, promoted as "the first component-oriented language in the C/C++ family." Despite the claim, however, many people think that C# is rather a clone of, or Microsoft's replacement for, Java. Is it true?
This article shows the evidence that C# is more than a sibling of Java. If you are a Java programmer who wants to learn or know more about C#, reading this article is the first ten minutes you should invest in.
C#, C++ and Java
Given the current hype, it is always interesting to compare C#, whose specification was written by Microsoft's Anders Hejlsberg and Scott Wiltamuth, with both C++ and Java. Considering the tone of recent IT newspapers' headlines, it is not too surprising if you already know that C# is closer to Java than to C++. For those who just joined the discussion, Table 1 below lets you see for yourself. Conclusion: Java and C# are not Siamese twins, but C#'s most important features are closer to Java than to C++.
Table 1: C#'s most important features compared with those of C++ and Java
|
Feature |
C# |
C++ |
Java |
|
Inheritance |
Single class inheritance, multiple interface implementation |
Multiple class inheritance |
Single class inheritance, multiple interface implementation |
|
The notion of interface |
Through the "interface" keyword |
Through abstract class |
Through the "interface" keyword |
|
Memory management |
Managed, using a garbage collector |
Manual |
Managed, using a garbage collector |
|
Pointers |
Yes, but only in the rarely-used unsafe mode. References are used, instead. |
Yes, a very commonly used feature. |
Not at all. References are used, instead. |
|
Form of Compiled Source Code |
.NET intermediate language (IL) |
Executables. |
Byte code. |
|
One common base class |
Yes |
No |
Yes |
After these outlined important features, read on to find out some important differences between C# and Java.

