Ключова разлика: Java е език за програмиране, който е бил повлиян от езика С. Той извлича голяма част от синтаксиса си от C и C ++, но има по-малко съоръжения от ниско ниво. Java е език за програмиране с общо предназначение, който е проектиран така, че да има по-малко зависимости в сравнение с предишните езици. C #, известен също като C sharp, е обектно-ориентиран език за програмиране. C # е език за програмиране с няколко парадигми. C # е базиран на езика за програмиране C. Първоначално той е разработен от Anders Hejlsberg за Microsoft за използване в неговата .NET рамка.
Java е разработена от Джеймс Гослинг от Sun Microsystems и е пусната през 1995 г. Първоначално тя беше издадена като основен компонент на Java платформата на Sun Microsystems. Оттогава Sun презарежда повечето от своите Java технологии под GNU General Public License. Това означава, че всички технологии, лицензирани под GNU General Public License, са с отворен код и обикновено са безплатни. Sun Microsystems в крайна сметка се сля с Oracle Corporation.
Java е предназначена да позволява на един и същ код да работи на различни платформи. Разработчиците имат право да “пишат веднъж, да работят навсякъде” (WORA). Следователно Java приложенията обикновено се компилират в байт-код. Клас файл, който съдържа байтов Java, може да бъде стартиран на всяка Java Virtual Machine (JVM). Това би било независимо от компютърната архитектура.
От 2012 г. Java се превърна в един от най-популярните езици за програмиране. Това е особено вярно за клиент-сървър уеб приложения. Много други системи са разработили алтернативни приложения на Sun технологии, като GNU Compiler for Java и GNU Classpath.
C #, известен също като C sharp, е обектно-ориентиран език за програмиране. C # е език за програмиране с няколко парадигми. Тя включва силно типизиране, императивни, декларативни, функционални, процедурни, общи, обектно-ориентирани (базирани на класа) дисциплини и ориентирани към компонентите.
C # е базиран на езика за програмиране C. Първоначално той е разработен от Anders Hejlsberg за Microsoft за използване в неговата .NET рамка. По-късно езикът C # беше одобрен като стандарт от Ecma (ECMA-334) и ISO (ISO / IEC 23270: 2006). C # е един от програмните езици, предназначени за общата езикова инфраструктура. C # е предназначен да бъде прост, модерен, общоприет, обектно-ориентиран език за програмиране.
- Езикът C # е предназначен да бъде прост, модерен, общоприет, обектно-ориентиран език за програмиране.
- Езикът и неговите изпълнения трябва да осигуряват подкрепа за принципите на софтуерното инженерство, като например силен тип проверка, проверка на масиви, откриване на опити за използване на неинициализирани променливи и автоматично събиране на боклука. Софтуерната надеждност, дълготрайност и производителност на програмистите са важни.
- Езикът е предназначен за използване при разработването на софтуерни компоненти, подходящи за разгръщане в разпределени среди.
- Преносимостта на изходния код е много важна, както и преносимостта на програмистите, особено за онези програмисти, които вече познават C и C ++.
- Подкрепата за интернационализацията е много важна.
- C # е предназначен да бъде подходящ за писане на приложения както за хоствани, така и за вградени системи, вариращи от много големи, които използват сложни операционни системи, до много малките, които имат специални функции.
- Въпреки че C # приложенията са предназначени да бъдат икономични по отношение на изискванията за памет и процесорна мощност, езикът не е предназначен да се конкурира директно с производителността и размера с C или асемблер.
Тъй като се основава на езика С, той е доста сходен с него. Той дори споделя някои синтактични конвенции с C. Въпреки това, недостатък на C # е, че тъй като е разработен от Microsoft за използване в неговата .NET рамка, той работи само на операционни системи на Microsoft.
Някои разлики между Java и C #:
- C # предоставя повече типове данни в сравнение с Java.
- C # съдържа по-примитивни типове данни от Java.
- C # поддържа претоварване на оператора, докато Java не го прави.
- C # поддържа типа strut, докато Java не го прави.
- AII типовете данни в C # са разположени.
- C # осигурява по-добро версия от Java.
- C # позволява параметрите да бъдат предавани чрез препратка с помощта на ключовата дума ref, докато Java позволява параметрите да се предават по стойност.
- C # позволява променлив брой параметри, които използват ключовата дума param.
- C # осигурява статични конструктори за инициализация.
- C # предоставя оператора goto вместо оператора break.
- Декларацията на масиви е различна в C # в сравнение с Java.
- Конвенцията за Java е да постави един публичен клас във всеки файл и някои компилатори изискват това. C # позволява всяко подреждане на източници.
- Java не поддържа събития и делегати.
- В Java методите са виртуални по подразбиране, но могат да бъдат направени окончателни. Докато в C # те са запечатани по подразбиране, но могат да бъдат направени виртуално.
- C # няма проверени изключения.
- Java не позволява създаването на потребителски типове стойности.
- Java няма претоварване от оператор и конверсия.
- Java няма итераторни блокове за проста реализация на итератори.
- Java няма нищо подобно на LINQ.
- Отчасти поради липсата на делегати, Java няма нищо подобно на анонимни методи и ламбда-изрази.
- Java няма дървета за изрази.
- C # няма анонимни вътрешни класове.
- Java няма еквивалент на анонимен тип C # 3.0.
- Java няма скрити локални променливи.
- Java няма методи за разширение.
- Java няма изрази за инициализиране на обекти и колекции.
- Java не притежава свойства като част от езика; те са конвенция на методите get / set / is.
- Java няма еквивалент на "опасен" код.
- Изреченията на Java са много по-обектно-ориентирани.
- Java няма директиви за препроцесор (#define, #if и т.н. в C #).
- Java няма еквивалент на C # 'ref и out за преминаване на параметри по референция.
- Java няма еквивалент на частични типове.
- C # интерфейсите не могат да декларират полета.
- Java няма неподписани цели числа.
- Java няма езикова поддръжка за десетичен тип.
- Java няма еквивалент на стойности за стойности с нули