Difference Between C# and Java
Table of Content:
Java Programmers may look at C# with a mixture of trepidation, glee, and resentment. It has been suggested that C# is somehow a "rip-off" of Java. I won't comment on the religious war between Microsoft and the "anyone but Microsoft" crowd except to acknowledge that C# certainly learned a great deal from Java. But then Java learned a great deal from C++, which owed its syntax to C, which in turn was built on lessons learned in other languages. We all stand on the shoulders of giants.
C# offers an easy transition for Java programmers; the syntax is very similar and the semantics are familiar and comfortable. Java programmers will probably want to focus on the differences between Java and C# in order to use the C# language effectively.
There are many differences and similarities between Java and C#. A list of top differences between Java and C# are given below:
No. | Java | C# |
---|---|---|
1) | Java is a high level, robust, secured and object-oriented programming language developed by Oracle. | C# is an object-oriented programming language developed by Microsoft that runs on .Net Framework. |
2) | Java programming language is designed to be run on a Java platform, by the help of Java Runtime Environment (JRE). | C# programming language is designed to be run on the Common Language Runtime (CLR). |
3) | Java type safety is safe. | C# type safety is unsafe. |
4) | In java, built-in data types that are passed by value are called primitive types. | In C#, built-in data types that are passed by value are called simple types. |
5) | Arrays in Java are direct specialization of Object. | Arrays in C# are specialization of System. |
6) | Java does not support conditional compilation. | C# supports conditional compilation using preprocessor directives. |
7) | Java doesn't support goto statement. | C# supports goto statement. |
8) | Java doesn't support structures and unions. | C# supports structures and unions. |
9) | Java supports checked exception and unchecked exception. | C# supports unchecked exception. |