Galvenā atšķirība: Java ir programmēšanas valoda, kuru ietekmēja C valoda. Tā iegūst lielu daļu no sintakses no C un C + +, taču tai ir mazāk zema līmeņa iekārtu nekā jebkurš. Java ir vispārējas nozīmes programmēšanas valoda, kas ir izstrādāta tā, lai būtu mazāk īstenošanas atkarību salīdzinājumā ar iepriekšējām valodām. C #, kas pazīstams arī kā C, ir objektorientēta programmēšanas valoda. C # ir vairāku paradigmu programmēšanas valoda. C # ir balstīta uz C programmēšanas valodu. Sākotnēji to izstrādāja Anders Hejlsberg, lai Microsoft to izmantotu .NET sistēmā.

Java izstrādāja James Gosling Sun Microsystems un tika izlaists 1995. gadā. Sākotnēji tas tika izlaists kā Sun Microsystems Java platformas pamatelements. Kopš tā laika Sun ir atkārtoti licencējusi lielāko daļu savu Java tehnoloģiju saskaņā ar GNU General Public License. Tas nozīmē, ka visa tehnoloģija, kas ir licencēta saskaņā ar GNU General Public License, ir atvērtā koda un parasti pieejama bez maksas. Sun Microsystems beidzot apvienojās ar Oracle Corporation.
Java ir veidota tā, lai tas pats kods darbotos dažādās platformās. ti, izstrādātājiem ir atļauts “rakstīt vienu reizi, palaist jebkurā vietā” (WORA). Tādējādi Java lietojumprogrammas parasti tiek apkopotas līdz baitu kodam. Klases failu, kas satur Java bytecode, var palaist jebkurā Java Virtual Machine (JVM). Tas būtu neatkarīgi no datora arhitektūras.
Kopš 2012. gada Java ir kļuvusi par vienu no populārākajām programmēšanas valodām lietošanai. Tas jo īpaši attiecas uz klienta-servera tīmekļa lietojumprogrammām. Daudzas citas sistēmas ir izstrādājušas alternatīvas Sun tehnoloģiju ieviešanas iespējas, piemēram, GNU Compiler Java un GNU Classpath.
C #, kas pazīstams arī kā C, ir objektorientēta programmēšanas valoda. C # ir vairāku paradigmu programmēšanas valoda. Tas ietver spēcīgu rakstīšanu, obligātu, deklaratīvu, funkcionālu, procesuālu, vispārēju, uz objektu orientētu (klases) un uz komponentiem orientētu programmēšanas disciplīnu.
C # ir balstīta uz C programmēšanas valodu. Sākotnēji to izstrādāja Anders Hejlsberg, lai Microsoft to izmantotu .NET sistēmā. C # valodu vēlāk apstiprināja kā standartu Ecma (ECMA-334) un ISO (ISO / IEC 23270: 2006). C # ir viena no programmēšanas valodām, kas paredzētas kopējai valodu infrastruktūrai. C # ir paredzēts kā vienkārša, moderna, universāla, objektorientēta programmēšanas valoda.

- C # valoda ir paredzēta kā vienkārša, moderna, universāla, objektorientēta programmēšanas valoda.
- Valodai un to ieviešanai būtu jāatbalsta programmatūras inženierijas principi, piemēram, spēcīga tipa pārbaude, masīvu robežas pārbaude, mēģinājumu izmantot neinicializētus mainīgos lielumus un automātiskā atkritumu savākšana. Svarīga ir programmatūras stabilitāte, izturība un programmētāja produktivitāte.
- Valoda ir paredzēta, lai izstrādātu programmatūras komponentus, kas piemēroti izvietošanai sadalītās vidēs.
- Avota kodu pārnesamība ir ļoti svarīga, tāpat kā programmētāja pārnesamība, īpaši tiem programmētājiem, kuri jau ir iepazinušies ar C un C ++.
- Atbalsts internacionalizācijai ir ļoti svarīgs.
- C # ir paredzēts lietojumprogrammu rakstīšanai gan izvietotām, gan iegultām sistēmām, sākot no ļoti lielām, kas izmanto sarežģītas operētājsistēmas, līdz pat ļoti mazām, kurām ir īpašas funkcijas.
- Lai gan C # lietojumprogrammas ir paredzētas ekonomiskajām prasībām attiecībā uz atmiņas un apstrādes jaudas prasībām, valodai nebija paredzēts tieši konkurēt ar veiktspēju un izmēru ar C vai montāžas valodu.
Tā kā tas balstās uz C valodu, tas ir diezgan līdzīgs tam. Tā pat sadala dažas sintaktiskās konvencijas ar C. Tomēr C # trūkums ir tāds, ka, tā kā Microsoft to izstrādāja lietošanai tās .NET sistēmā, tā darbojas tikai Microsoft operētājsistēmās.
Dažas atšķirības starp Java un C #:
- C # nodrošina vairāk datu tipu, salīdzinot ar Java.
- C # satur vairāk primitīvu datu tipu nekā Java.
- C # atbalsta operatora pārslodzi, bet Java nav.
- C # atbalsta statņa tipu, bet Java nav.
- AII datu tipi C # ir norobežoti.
- C # nodrošina labāku versiju nekā Java.
- C # ļauj parametriem nodot atsauces, izmantojot ref atslēgvārdu, bet Java ļauj parametriem nodot pēc vērtības.
- C # ļauj mainīt parametru skaitu, izmantojot param atslēgvārdu.
- C # nodrošina statiskos konstruktorus inicializācijai.
- C # sniedz paziņojumu par goto, nevis pārtraukuma paziņojumu.
- Deklarācija par masīviem ir atšķirīga C #, salīdzinot ar Java.
- Java konvencija ir ievietot vienu publisko klasi katrā failā, un daži kompilatori to pieprasa. C # ļauj veikt jebkuru avota failu izkārtojumu.
- Java neatbalsta notikumus un delegātus.
- Java gadījumā pēc noklusējuma metodes ir virtuālas, bet tās var padarīt galīgas. Kaut arī C # tie ir aizzīmogoti pēc noklusējuma, bet tos var padarīt virtuālus.
- C # nav pārbaudījis izņēmumus.
- Java neļauj izveidot lietotāja definētus vērtības veidus.
- Java nav operatora un konversijas pārslodzes.
- Java nav iteratora bloku, lai vienkāršotu iteratoru ievadīšanu.
- Java nav kaut kas līdzīgs LINQ.
- Daļēji tāpēc, ka nav delegātu, Java nav kaut kas līdzīgs anonīmām metodēm un lambda izteiksmēm.
- Java nav izteiksmes koku.
- C # nav anonīmu iekšējo nodarbību.
- Java nav ekvivalents anonīmiem C # 3.0 tipiem.
- Java nav netieši ievadīti vietējie mainīgie.
- Java nav paplašināšanas metožu.
- Java nav objekta un kolekcijas inicializācijas izteiksmju.
- Java nav īpašības kā valodas daļa; viņi ir get / set / ir metode.
- Java nav ekvivalenta "nedrošam" kodam.
- Java enums ir daudz vairāk orientēts uz objektu.
- Java nav iepriekšēju apstrādātāju direktīvu (#define, #if utt. C #).
- Java nav ekvivalents C # 's ref un ārā, lai ietu parametrus pēc atsauces.
- Java nav ekvivalenta daļējiem veidiem.
- C # saskarnes nevar deklarēt laukus.
- Java nav neparakstītu veselu skaitļu veidu.
- Java decimālam tipam nav valodas atbalsta.
- Java nav ekvivalents nullable vērtības veidiem