Ključna razlika: Java je programski jezik, na katerega je vplival jezik C. Veliko sintakse izhaja iz C in C ++, vendar ima manj naprav z nizkimi stopnjami kot tudi. Java je programski jezik za splošne namene, ki je zasnovan tako, da ima manj odvisnosti od izvedbe v primerjavi s prejšnjimi jeziki. C #, znan tudi kot C sharp, je objektno usmerjen programski jezik. C # je programski jezik z več paradigmi. C # temelji na programskem jeziku C. Prvotno ga je razvil Anders Hejlsberg za Microsoft za uporabo v svojem ogrodju .NET.
Java je razvil James Gosling pri Sun Microsystems in je izšel leta 1995. Prvotno je bil izdan kot osnovna komponenta Java platforme Sun Microsystems. Od takrat je Sun ponovno licenciral večino svojih tehnologij Java pod GNU General Public License. To pomeni, da je vsa tehnologija, licencirana pod GNU General Public License, odprtokodna in splošno dostopna brezplačno. Sun Microsystems se je nazadnje združil v Oracle Corporation.
Java je zasnovana tako, da omogoča izvajanje iste kode na različnih platformah. razvijalcem je dovoljeno "pisati enkrat, izvajati kjerkoli" (WORA). Zato se aplikacije Java običajno prevedejo v bajtno kodo. Datoteka razreda, ki vsebuje bajtno kodo Java, se lahko nato zažene na katerem koli navideznem stroju Java (JVM). To bi bilo ne glede na arhitekturo računalnika.
Od leta 2012 je Java postala eden najbolj priljubljenih programskih jezikov za uporabo. To še posebej velja za spletne aplikacije odjemalec-strežnik. Mnogi drugi sistemi so razvili alternativne implementacije tehnologij Sun, kot sta GNU Compiler for Java in GNU Classpath.
C #, znan tudi kot C sharp, je objektno usmerjen programski jezik. C # je programski jezik z več paradigmi. Vključuje močno tipkanje, obvezne, deklarativne, funkcionalne, proceduralne, generične, objektno usmerjene (klasne) in komponentno usmerjene programske discipline.
C # temelji na programskem jeziku C. Prvotno ga je razvil Anders Hejlsberg za Microsoft za uporabo v svojem ogrodju .NET. Jezik C # je bil kasneje potrjen kot standard Ecma (ECMA-334) in ISO (ISO / IEC 23270: 2006). C # je eden od programskih jezikov, zasnovanih za skupno jezikovno infrastrukturo. C # je namenjen enostavnemu, sodobnemu, splošnemu namenu, objektno usmerjenemu programskemu jeziku.
- Jezik C # je namenjen enostavnemu, modernemu, splošnemu namenu, objektno usmerjenemu programskemu jeziku.
- Jezik in njegove izvedbe bi morale zagotavljati podporo za načela inženiringa programske opreme, kot so močno preverjanje tipov, preverjanje meja nizov, odkrivanje poskusov uporabe neinicializiranih spremenljivk in samodejno zbiranje odpadkov. Pomembna sta robustnost, vzdržljivost in produktivnost programerjev.
- Jezik je namenjen uporabi pri razvoju programskih komponent, primernih za uporabo v porazdeljenih okoljih.
- Prenosljivost izvorne kode je zelo pomembna, kot tudi prenosljivost programerjev, zlasti za tiste, ki že poznajo C in C ++.
- Podpora internacionalizaciji je zelo pomembna.
- Namen C # je, da je primeren za pisanje aplikacij za gostujoče in vgrajene sisteme, od zelo velikih, ki uporabljajo napredne operacijske sisteme, do zelo majhnih, ki imajo namenske funkcije.
- Čeprav so C # aplikacije namenjene ekonomičnosti glede na zahteve glede pomnilnika in moči obdelave, jezik ni bil namenjen neposrednemu konkuriranju zmogljivosti in velikosti s C ali zbirnim jezikom.
Ker temelji na jeziku C, je zelo podoben. Skupaj z nekaterimi sintaktičnimi konvencijami deli C. Vendar je pomanjkljivost C # ta, da jo je Microsoft razvil za uporabo v svojem ogrodju .NET in deluje le na Microsoftovih operacijskih sistemih.
Nekatere razlike med Javo in C #:
- C # zagotavlja več tipov podatkov v primerjavi z Javo.
- C # vsebuje bolj primitivne vrste podatkov kot Java.
- C # podpira preobremenitev operaterja, medtem ko Java ne.
- C # podpira vrsto strut, medtem ko Java ne.
- Vsi tipi podatkov v C # so razporejeni.
- C # ponuja boljše različice kot Java.
- C # omogoča, da se parametri posredujejo z referenco z uporabo ključne besede ref, medtem ko Java omogoča, da se parametri posredujejo po vrednosti.
- C # omogoča spremenljivo število parametrov s ključno besedo param.
- C # zagotavlja statične konstruktorje za inicializacijo.
- C # namesto stavke break podaja izjavo goto.
- Deklaracija nizov je različna v C # v primerjavi z Javo.
- Konvencija za Javo je, da v vsako datoteko doda en javni razred, nekateri prevajalniki pa to zahtevajo. C # omogoča urejanje vseh izvornih datotek.
- Java ne podpira dogodkov in delegatov.
- V Javi so metode privzeto navidezne, vendar jih je mogoče končati. Medtem ko so v C # privzeto zapečateni, vendar jih je mogoče narediti navidezno.
- C # nima preverjenih izjem.
- Java ne dovoljuje ustvarjanja uporabniško definiranih tipov vrednosti.
- Java nima preobremenitve operaterja in konverzij.
- Java nima iteratorskih blokov za preprosto implementacijo iteratorjev.
- Java nima ničesar podobnega kot LINQ.
- Delno zaradi tega, ker nimajo delegatov, Java nima nič podobnega kot anonimne metode in lambda izraze.
- Java nima dreves izrazov.
- C # nima anonimnih notranjih razredov.
- Java nima enakovrednih anonimnih tipov C # 3.0.
- Java nima implicitno vnesenih lokalnih spremenljivk.
- Java nima metod razširitve.
- Java nima objektnih in zbirnih inicializacijskih izrazov.
- Java nima lastnosti kot del jezika; oni so konvencija metod get / set / is.
- Java nima enakovredne kode »nevarno«.
- Java enumi so veliko bolj objektno usmerjeni.
- Java nima nobenih predprocesorskih direktiv (#define, #if etc v C #).
- Java nima nobenega ekvivalenta C # ref in out za posredovanje parametrov po referenci.
- Java nima ekvivalenta delnih tipov.
- Vmesniki C # ne morejo razglasiti polj.
- Java nima nepodpisanih celoštevilskih tipov.
- Java nima jezikovne podpore za decimalni tip.
- Java nima nobenih ekvivalentov tipov vrednosti, ki lahko ničelno vrednostjo