Ključna razlika: Java je programski jezik, na koji je utjecao jezik C. Većinu sintakse proizlazi iz C i C ++, ali ima manje objekata niže razine od bilo koje. Java je programski jezik opće namjene koji je dizajniran tako da ima manje ovisnosti o implementaciji u odnosu na prethodne jezike. C #, također poznat kao C sharp, je objektno orijentirani programski jezik. C # je programski jezik s više paradigmi. C # se temelji na programskom jeziku C. Izvorno ga je razvio Anders Hejlsberg za Microsoft za upotrebu u svom .NET okviru.

Java je razvio James Gosling u tvrtki Sun Microsystems, a izdana je 1995. godine. Izvorno je izdana kao temeljna komponenta Java platforme Sun Microsystems. Sun je od tada ponovno licencirao većinu svojih Java tehnologija pod GNU Općom javnom licencom. To znači da je sva tehnologija licencirana pod GNU Općom javnom licencom otvorenog koda i općenito dostupna besplatno. Sun Microsystems se na kraju spojio u Oracle Corporation.
Java je dizajnirana da omogući pokretanje istog koda na različitim platformama. tj. programerima je dopušteno "pisati jednom, izvoditi bilo gdje" (WORA). Dakle, Java aplikacije se obično sastavljaju u bajt-kod. Datoteka klase koja sadrži bajtni kod Java može se tada pokrenuti na bilo kojem Java Virtual Machineu (JVM). To bi bilo bez obzira na arhitekturu računala.
Od 2012. godine Java je postala jedan od najpopularnijih programskih jezika za upotrebu. To posebno vrijedi za klijent-poslužitelj web aplikacije. Mnogi drugi sustavi razvili su alternativne implementacije Sun tehnologija, kao što su GNU Compiler za Java i GNU Classpath.
C #, također poznat kao C sharp, je objektno orijentirani programski jezik. C # je programski jezik s više paradigmi. To uključuje stroge tipizacijske, imperativne, deklarativne, funkcionalne, proceduralne, generičke, objektno orijentirane (klasne) i komponentno orijentirane programske discipline.
C # se temelji na programskom jeziku C. Izvorno ga je razvio Anders Hejlsberg za Microsoft za upotrebu u svom .NET okviru. Jezik C # je kasnije odobren kao standard od strane Ecme (ECMA-334) i ISO (ISO / IEC 23270: 2006). C # je jedan od programskih jezika dizajniranih za zajedničku jezičnu infrastrukturu. C # je zamišljen kao jednostavan, moderan, opće-namjenski, objektno-orijentirani programski jezik.

- C # jezik je zamišljen kao jednostavan, moderan, opće-namjenski, objektno-orijentirani programski jezik.
- Jezik i njegove implementacije trebaju pružiti podršku za principe softverskog inženjeringa kao što su provjera jakih tipova, provjera nizova polja, otkrivanje pokušaja korištenja neinicijaliziranih varijabli i automatsko prikupljanje smeća. Robusnost, izdržljivost i produktivnost programera su važni.
- Jezik je namijenjen za uporabu u razvoju softverskih komponenti pogodnih za implementaciju u distribuiranim okruženjima.
- Prenosivost izvornog koda je vrlo važna, kao i prenosivost programera, posebno za one koji već poznaju C i C ++.
- Podrška internacionalizaciji je vrlo važna.
- C # je namijenjen da bude prikladan za pisanje aplikacija za hostirane i ugrađene sustave, u rasponu od vrlo velikih koji koriste sofisticirane operativne sustave, pa sve do vrlo malih funkcija koje imaju posebne namjene.
- Iako su C # aplikacije namijenjene ekonomičnosti s obzirom na zahtjeve za memorijom i procesorskom snagom, jezik nije bio namijenjen izravnom konkuriranju izvedbi i veličini s C ili asemblerskim jezikom.
Budući da se temelji na jeziku C, vrlo je sličan njemu. Čak i dijeli neke sintaktičke konvencije s C. Međutim, nedostatak C # je u tome što, budući da ga je Microsoft razvio za upotrebu u svom .NET okviru, radi samo na Microsoftovim operativnim sustavima.
Neke razlike između Java i C #:
- C # pruža više tipova podataka u usporedbi s Java.
- C # sadrži više primitivnih tipova podataka od Jave.
- C # podržava preopterećenje operatora dok Java ne.
- C # podržava strut tip dok Java ne.
- Svi tipovi podataka u C # su podupirači.
- C # pruža bolju verziju od Jave.
- C # omogućuje da se parametri prosljeđuju referencom pomoću ključne riječi ref, dok Java omogućuje da se parametri prosljeđuju po vrijednosti.
- C # omogućuje promjenjivi broj parametara pomoću ključne riječi param.
- C # osigurava statičke konstruktore za inicijalizaciju.
- C # daje naredbu goto umjesto prekidne izjave.
- Deklaracija nizova je različita u C # u odnosu na Javu.
- Konvencija za Javu je staviti jednu javnu klasu u svaku datoteku, a neki kompilatori to zahtijevaju. C # omogućuje raspored svih izvornih datoteka.
- Java ne podržava događaje i delegate.
- U Javi su metode virtualno po defaultu, ali mogu biti konačne. Dok su u C # po defaultu zapečaćene, ali mogu biti virtualne.
- C # nije provjerio iznimke.
- Java ne dopušta stvaranje korisnički definiranih tipova vrijednosti.
- Java nema preopterećenje operatora i konverzija.
- Java nema iteratorske blokove za jednostavnu implementaciju iteratora.
- Java nema ništa slično LINQ-u.
- Djelomično zbog toga što nema delegate, Java nema ništa slično anonimnim metodama i lambda izrazima.
- Java nema stabla izraza.
- C # nema anonimne unutarnje klase.
- Java nema ekvivalent za anonimne C # 3.0 tipove.
- Java nema implicitno upisane lokalne varijable.
- Java nema metode proširenja.
- Java nema izraze za inicijalizaciju objekata i zbirki.
- Java nema svojstva kao dio jezika; oni su konvencija metoda get / set / is.
- Java nema ekvivalent "nesigurnog" koda.
- Java enumovi su mnogo više objektno orijentirani.
- Java nema direkcije predprocesora (#define, #if etc u C #).
- Java nema ekvivalent C # ref i out za prosljeđivanje parametara referencom.
- Java nema ekvivalent djelomičnih tipova.
- C # sučelja ne mogu deklarirati polja.
- Java nema nepotpisane cjelobrojne vrste.
- Java nema jezičnu podršku za decimalni tip.
- Java nema ekvivalent tipova vrijednosti koje se mogu poništiti