Start networking and exchanging professional insights

Register now or log in to join your professional community.

Follow

What is difference between C# and java.?

Object oriented programming concepts

user-image
Question added by faizullah khan faiz , React Native Developer , blue horn tech
Date Posted: 2018/08/29
Mohd Arif Khan
by Mohd Arif Khan , Senior Associate Experience Technology Level 1 , Sapient Corporation Pvt. Ltd.

Differences:

Java is Open source while C# not( that's why Java have one of the larges community)

Java is platform independent( you can run Java application anywhere Linux, Mac, windows, etc.) while C# can be run only on the limited platform like Windows

For Java application, there are too many servers like Apache Tomcat, Weblogic, Websphere, etc. while the C# application can be run only on IIS

Most of the frameworks of Java are the free and open source while in C# a limited choice available

C# follow most of the OOPS concept while Java lesser than C# like C# does not have the primitive type

 

 

Shazibali Gesawat
by Shazibali Gesawat , Full Stack Developer , Self Employed

Both C# and Java are Object Oriented Programming Languages.

 

If i were to compare Java 7 and c#3.

 

It would be as follows.

 

Comparing Java 7 and C# 3

(Some features of Java 7 aren't mentioned here, but the using statement advantage of all versions of C# over Java 1-6 has been removed.)

Not all of your summary is correct:

  • In Java methods are virtual by default but you can make them final. (In C# they're sealed by default, but you can make them virtual.)
  • There are plenty of IDEs for Java, both free (e.g. Eclipse, Netbeans) and commercial (e.g. IntelliJ IDEA)

Beyond that (and what's in your summary already):

  • Generics are completely different between the two; Java generics are just a compile-time "trick" (but a useful one at that). In C# and .NET generics are maintained at execution time too, and work for value types as well as reference types, keeping the appropriate efficiency (e.g. a List<byte> as a byte[] backing it, rather than an array of boxed bytes.)
  • C# doesn't have checked exceptions
  • Java doesn't allow the creation of user-defined value types
  • Java doesn't have operator and conversion overloading
  • Java doesn't have iterator blocks for simple implemetation of iterators
  • Java doesn't have anything like LINQ
  • Partly due to not having delegates, Java doesn't have anything quite like anonymous methods and lambda expressions. Anonymous inner classes usually fill these roles, but clunkily.
  • Java doesn't have expression trees
  • C# doesn't have anonymous inner classes
  • C# doesn't have Java's inner classes at all, in fact - all nested classes in C# are like Java's static nested classes
  • Java doesn't have static classes (which don't have any instance constructors, and can't be used for variables, parameters etc)
  • Java doesn't have any equivalent to the C# 3.0 anonymous types
  • Java doesn't have implicitly typed local variables
  • Java doesn't have extension methods
  • Java doesn't have object and collection initializer expressions
  • The access modifiers are somewhat different - in Java there's (currently) no direct equivalent of an assembly, so no idea of "internal" visibility; in C# there's no equivalent to the "default" visibility in Java which takes account of namespace (and inheritance)
  • The order of initialization in Java and C# is subtly different (C# executes variable initializers before the chained call to the base type's constructor)
  • Java doesn't have properties as part of the language; they're a convention of get/set/is methods
  • Java doesn't have the equivalent of "unsafe" code
  • Interop is easier in C# (and .NET in general) than Java's JNI
  • Java and C# have somewhat different ideas of enums. Java's are much more object-oriented.
  • Java has no preprocessor directives (#define, #if etc in C#).
  • Java has no equivalent of C#'s ref and out for passing parameters by reference
  • Java has no equivalent of partial types
  • C# interfaces cannot declare fields
  • Java has no unsigned integer types
  • Java has no language support for a decimal type. (java.math.BigDecimal provides something like System.Decimal - with differences - but there's no language support)
  • Java has no equivalent of nullable value types
  • Boxing in Java uses predefined (but "normal") reference types with particular operations on them. Boxing in C# and .NET is a more transparent affair, with a reference type being created for boxing by the CLR for any value type.

This is not exhaustive, but it covers everything I can think of off-hand.

Ahmed Ezat
by Ahmed Ezat , محاسب مالي , جلاكسي

C# and java both were derived from C++, and therefore they have similar roots, both are widely used for web programming. We discuss the difference between C# and java these are as follows:

 

C# has more primitive datatypes

Java uses static final to declare a class constant while C# uses const.

Java does not provide for operator overloading.

C# supports the struct type and java does not.

Unlike java, all C# datatypes are object.

C# provides static constructors for initialization.

In java, parameters are always passed by value, c# allows parameters to be passed by reference by Ref keyword.

C# includes native support for properties, java does not.

Java does not directly support enumerations.

In java, the switch statement can have only integer expression, in C# supports integer and string both.

asad rauf
by asad rauf , Computer Operator , DC OFFICE FINANCE AND PALNNING

JAVA is Object-Oriented while C is procedural. ... Most differences between the features of the two languages arise due to the use of different programming paradigms. C breaks down to functions whileJAVA breaks down to Objects. C is more procedure-oriented whileJAVA is data-oriented.

Agnivesh Rana
by Agnivesh Rana , Full Stack Developer , Optum Global Solutions [United Health Group]

Java is an object oriented language developed by sun microsystems  and now taken over by oracle.

C# is the object oriented language developed by Mircosoft

Mounir Salem
by Mounir Salem , تقني , it et is services

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 Javaplatform, by the help of Java Runtime Environment (JRE).

hanadi Lafi Abu-Sabelah
by hanadi Lafi Abu-Sabelah , متدرب , App Trainers

  • C# implements properties as part of the language syntax.

    C# allows switch statements to operate on strings.

    C# allows anonymous methods providing closure functionality.

    C# allows iterator that employs co-routines via a functional-style yield keyword.

    C# has support for output parameters, aiding in the return of multiple values, a feature shared by C++ and SQL.

    C# has the ability to alias namespaces.

    C# has "Explicit Member Implementation" which allows a class to specifically implement methods of an interface, separate from its own class methods. This allows it also to implement two different interfaces which happen to have a method of the same name. The methods of an interface do not need to be public; they can be made to be accessible only via that interface.

    C# provides integration with COM.

abdelmoneim abdalla abaker kose
by abdelmoneim abdalla abaker kose , IT Department Manager , Ministery of education

The deferents between C# and java are - java is object-oriented while C is procedural -JAVA is an interpreted language while C is compiled language - Java is high-level language while C is law-level language - JAVA breaks down to objects while C breaks down to function

Deleted user
by Deleted user

They are both Object Oriented, different developers. C# runs on .Net while JAva is on Java Platform

More Questions Like This

Do you need help in adding the right keywords to your CV? Let our CV writing experts help you.