Hovedforskel: Java er et programmeringssprog, som er blevet påvirket af C-sproget. Det hidrører meget af sin syntaks fra C og C ++, men det har færre lavniveau faciliteter end. Java er et generel programmeringssprog, der er designet til at have færre implementeringsafhængigheder i forhold til tidligere sprog. C #, også kendt som C-skarp, er et objektorienteret programmeringssprog. C # er et multi-paradigm programmeringssprog. C # er baseret på C programmeringssprog. Det blev oprindeligt udviklet af Anders Hejlsberg til Microsoft til brug i sin. NET framework.

Java blev udviklet af James Gosling hos Sun Microsystems og blev udgivet i 1995. Det blev oprindeligt frigivet som en kerne komponent i Sun Microsystems 'Java-platform. Sun har siden licenseret de fleste af dets Java-teknologier under GNU General Public License. Det betyder, at al den teknologi, der er licenseret under GNU General Public License, er åben kilde og generelt tilgængelig uden omkostninger. Sun Microsystems fusionerede til sidst Oracle Corporation.
Java er designet til at tillade, at den samme kode kører på forskellige platforme. dvs. udviklere må "skrive en gang, køre hvor som helst" (WORA). Derfor er Java-programmer typisk kompileret til bytecode. En klassefil, der indeholder en Java bytecode, kan derefter køres på en hvilken som helst Java Virtual Machine (JVM). Dette ville være uanset computer arkitektur.
Fra og med 2012 er Java blevet et af de mest populære programmeringssprog til brug. Dette gælder især for klientserver-webapplikationer. Mange andre systemer har udviklet alternative implementeringer af Sun teknologier, såsom GNU Compiler til Java og GNU Classpath.
C #, også kendt som C-skarp, er et objektorienteret programmeringssprog. C # er et multi-paradigm programmeringssprog. Det omfatter stærk skrive, imperative, deklarative, funktionelle, proceduremæssige, generiske, objektorienterede (klassebaserede) og komponentorienterede programmeringsdiscipliner.
C # er baseret på C programmeringssprog. Det blev oprindeligt udviklet af Anders Hejlsberg til Microsoft til brug i sin. NET framework. C # -sproget blev senere godkendt som standard af Ecma (ECMA-334) og ISO (ISO / IEC 23270: 2006). C # er et af programmeringssprogene designet til Common Language Infrastructure. C # er beregnet til at være et simpelt, moderne, generelle formål, objektorienteret programmeringssprog.

- C # -sproget er beregnet til at være et simpelt, moderne, generelle formål, objektorienteret programmeringssprog.
- Sproget og implementeringen heraf skal give støtte til software engineering principper såsom stærk type kontrol, array grænsekontrol, afsløring af forsøg på at bruge uninitialized variabler og automatisk affaldsindsamling. Software robusthed, holdbarhed og programmerer produktivitet er vigtig.
- Sproget er beregnet til brug i udvikling af softwarekomponenter, der er egnet til implementering i distribuerede miljøer.
- Kildekodeportabilitet er meget vigtig, ligesom programmeringsportabilitet, især for de programmerere, der allerede er bekendt med C og C ++.
- Støtte til internationalisering er meget vigtigt.
- C # er beregnet til at være egnet til at skrive applikationer til både hostede og indlejrede systemer, lige fra den meget store, der bruger sofistikerede operativsystemer, ned til det meget lille, der har dedikerede funktioner.
- Selvom C # -applikationer er beregnet til at være økonomiske med hensyn til hukommelses- og proceskravkrav, var sproget ikke beregnet til at konkurrere direkte på ydeevne og størrelse med C eller monteringssprog.
Da det er baseret på C-sproget, er det meget lig det. Det deler endda nogle syntaktiske konventioner med C. En ulempe ved C # er imidlertid, at den, som den blev udviklet af Microsoft til brug i sin .NET-ramme, kun virker på Microsoft-operativsystemer.
Nogle forskelle mellem Java og C #:
- C # giver flere datatyper sammenlignet med Java.
- C # indeholder mere primitive datatyper end Java.
- C # understøtter operatør overbelastning, mens Java ikke gør det.
- C # understøtter strut typen, mens Java ikke gør det.
- Alle datatyper i C # er stivere.
- C # giver bedre versionering end Java.
- C # tillader parametre at blive videresendt ved reference ved hjælp af ref-søgeordet, mens Java tillader parametre at blive videregivet efter værdi.
- C # tillader variabelt antal parametre ved hjælp af param-søgeordet.
- C # giver statiske konstruktorer til initialisering.
- C # giver goto erklæring i stedet for break statement.
- Deklaration af arrays er forskellig i C # i forhold til Java.
- Konventionen for Java er at sætte en offentlig klasse i hver fil, og nogle kompilatorer kræver dette. C # tillader nogen kildefilarrangement.
- Java understøtter ikke begivenheder og delegerede.
- I Java er metoderne som standard virtuelle, men kan laves endelige. Mens i C # de er forseglet som standard, men kan gøres virtuelle.
- C # har ikke kontrolleret undtagelser.
- Java tillader ikke oprettelse af brugerdefinerede værdityper.
- Java har ikke overbelastning af operatør og konvertering.
- Java har ikke iteratorblokke til simpel implemetation af iteratorer.
- Java har ikke noget som LINQ.
- Delvist på grund af ikke at have delegerede, har Java ikke noget helt som anonyme metoder og lambda udtryk.
- Java har ikke ekspresstræer.
- C # har ikke anonyme indre klasser.
- Java har ikke nogen tilsvarende anonyme typer C # 3.0.
- Java har ikke implicit skrevet lokale variabler.
- Java har ikke udvidelsesmetoder.
- Java har ikke objekt- og samlingsinitiator-udtryk.
- Java har ikke egenskaber som en del af sproget; de er en konvention af get / set / er metoder.
- Java har ikke det tilsvarende "usikre" kode.
- Java's enums er meget mere objektorienterede.
- Java har ingen præprocessor direktiver (#define, #if etc i C #).
- Java har ikke ækvivalent C # 's ref og ud for at overføre parametre ved reference.
- Java har ikke tilsvarende ækvivalenter.
- C # -grænseflader kan ikke deklarere felter.
- Java har ingen usignerede heltalstyper.
- Java har ingen sprogstøtte til en decimaltype.
- Java har ikke ækvivalent værdier af nullable værdi