Open In App
Related Articles

Java vs C#

Improve Article
Save Article
Like Article

C# is a general-purpose, modern and object-oriented programming language pronounced as “C sharp”. It was developed by Microsoft led by Anders Hejlsberg and his team. 

Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented etc. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. 

Below are some major differences between C# and Java: platform-independent APIs

Feature C# Java
Operator Overloading C# supports operator overloading for multiple operators. Java does not support operator overloading.
Runtime Environment C# supports CLR(Common Language Runtime). Java supports JVM(Java Virtual Machine).
API Control C# API are controlled by open source community. Java API are also controlled by open community processes support.
Public Classes In C#, there can be many public classes inside a source code. In Java there can be only one public class inside a source code otherwise there will be compilation error.
Checked Exceptions C# does not support Unix-based checked exceptions. In some cases checked exceptions are very useful for the smooth execution of the program. Java supports both checked and unchecked exceptions.
Platform Dependency C# is cross-platform and runs on both Windows & Unix based systems. Java is a robust and platform independent language. Platform independency of Java is through JVM.
Pointers In C# pointers can be used only in unsafe mode. Java does not support anyway use of pointers.
Conditional Compilation C# supports for conditional compilation. Java does not supportconditional compilation.
goto statement C# supports for goto statement. Java does not supportsupport for goto statement. The use of goto statement will cause errors in Java code.
Structure and Union C# supports structures and unions. Java doesn’t support structures and unions.
Floating Point C# does not supports strictfp keyword which means it result of floating point numbers may not be guaranteed to be the same across all platforms. Java supports strictfp keyword which means its result for floating point numbers will be the same for various platforms.
Language C# is based on JavaScript. It is in itself is an independent language.
Routing For routing configuration, it uses ASP.Net For routing configuration, it uses akka.routing
Dependency Injection It uses dependency injection. It not only uses dependency injection but also allows modification.
Speed Speed is slower than JAVA. Speed is faster than the speed of C#.
Polymorphism It supports polymorphism by default. It supports polymorphism by default.
Delegates It contains delegates. It does not contain delegates.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 26 Apr, 2023
Like Article
Save Article
Similar Reads
Complete Tutorials