Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Сравнительная характеристика технологий .NET и Java.

Читайте также:
  1. Cучасні моделі розвитку підприємства: їх суть та характеристика
  2. VI. Характеристика сельского хозяйства
  3. Административно-правовой статус граждан (общая характеристика прав и обязанностей в административном праве).
  4. Административное наказание в виде административного штрафа. Характеристика производства по исполнению постановления о наложении административного штрафа.
  5. Актуальні проблемизлочинів проти здоров’я. Загальна характеристика й види. Здоров’я людини як безпосередній об’єкт посягання.
  6. Акустические колебания, их характеристика и воздействие на организм.
  7. Амплитудно-частотная характеристика.
  8. Баня и сауны, характеристика
  9. Билет 4. Характеристика педагогической деятельности.
  10. Билет № 18. Общая характеристика младшего школьника. Развитие познавательных процессов в младшем школьном возрасте

Подобно технологии Java, среда разработки.NET создаёт байт-код, предназначенный для исполнения виртуальной машиной. Входной язык этой машины в.NET называется MSIL (Microsoft Intermediate Language), или CIL (Common Intermediate Language, более поздний вариант), или просто IL. Применение байт-кода позволяет получить кроссплатформенность на уровне скомпилированного проекта (в терминах.NET: сборка), а не только на уровне исходного текста, как, например, в С. Перед запуском сборки в среде исполнения CLR байт-код преобразуется встроенным в среду JIT-компилятором (just in time, компиляция на лету) в машинные коды целевого процессора. Также существует возможность скомпилировать сборку в родной (native) код для выбранной платформы с помощью поставляемой вместе с.NET Framework утилиты NGen.exe.

Следует отметить, что один из первых JIT-компиляторов для Java был также разработан фирмой Microsoft. Современная технология динамической компиляции позволяет достигнуть уровня быстродействия, аналогичного традиционным «статическим» компиляторам (например, C++), и вопрос быстродействия зачастую зависит от качества того или иного компилятора.

1) Вся платформа.NET основана на единой объектно-ориентированной модели. Что это значит? Дело в том, что все сервисы, интерфейсы и объекты, которые платформа предоставляет разработчику объединены в единую иерархию классов. Другими словами, все, что может вам потребоваться при создании приложений под платформу.NET будет всегда у вас под рукой. Причем, все это сгруппировано очень удобно и интуитивно понятно.

2) Приложение, написанное на любом.NET-совместимом языке является межплатформенным (в идеале). Почему в идеале? Дело в том, что приложение, написанное, скажем, на том же C#, не зависит от платформы, на которой будет выполняться, но зато зависит от наличия платформы.NET. Но согласитесь, что намного легче один раз портировать архитектуру.NET под какую-либо систему, после чего без проблем запускать абсолютно любое.NET приложение. В настоящий момент платформа.NET портирована на большинство популярных систем, в том числе и на мобильные системы, такие как MS Windows mobile.

3) В состав платформы.NET входит т.н. "сборщик мусора", который освобождает ресурсы. Таким образом, приложения защищены от утечки памяти и от необходимости освобождать ресурсы. Это делает программирование более легким и более безопасным.

4) Приложения.NET используют метаданные, что позволяет им не пользоваться системным реестром Windows.

5) Любое.NET приложение является автономным, в том смысле, что не зависит от других программ, в частности от ОС. Установка приложения написанного на одном из.NET языках может быть произведена обычным копированием файлов (исключение составляет создание ярлыков в меню "Пуск" и др. местах).

6) Приложения.NET используют безопасные типы, что повышает их надежность, совместимость и межплатформенность.

7) Приложение, написанное на любом.NET языке взаимодействует с единой моделью обработки ошибок, что значительно упрощает этот нудный процесс.

8) Приложения написанные на разных могут легко взаимодействовать. Например, серверная часть может быть написана на C#, а клиентская на Visual Basic.

9).NET приложения могут быть сертифицированы на безопасность. Это является особенность промежуточного кода, в который преобразуются все.NET приложения.

10) Абсолютно все ошибки обрабатываются механизмом исключительных ситуаций. Это позволяет избежать разногласия, которые иногда возникали при программировании под Win32.

11) Повторное использование кода стало еще удобнее. Это связано с тем, что промежуточный язык MSIL не зависит от языка программирования. Например, вы можете написать программу на C#, а патч к ней писать уже, скажем, на J#. Недостатки платформы.NET

1) Как это часто бывает, за удобство нужно платить скоростью, так и случилось с.NET. Приложения, написанные под платформу.NET работают медленнее, это факт. В некоторых случаях скорость может упасть на 15%, что иногда является неприемлемым (например, при создании 3D приложений, где бьются за каждый FPS). Задержки в выполнении связаны с промежуточным языком MSIL, ведь для того чтобы его скомпилировать в выполняемый файл тоже нужно время. Разумеется, что приложение компилируется не все сразу, а по частям, равномерно при работе программы.

2) Не на любом языке можно создавать.NET приложения. Дело в том, что первоначально.NET "затачивался" под C/JAVA-подобные языки. Это породило некоторые трудности с созданием.NET компиляторов для других языков (особенно экзотических и узкоспециализированных). В результате этого некоторые функции пришлось решать нетривиальными способами, что отрицательно сказалось на производительности. Но постепенно данный недостаток сходит на нет, т.к. разработчики компиляторов поняли важность платформы.NET и стараются сделать для своих языков достойные инструменты.

3) Необходимо наличие библиотеки FrameWork. Данный недостаток будет полностью устранен с выходом Windows Vista, т.к. данная библиотека будет встроена в систему по умолчанию. Сейчас же наличие FrameWork на компьютерах обычных пользователей являются редкостью. Они попросту не знают, что это такое.

Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор, но с тем отличием, что байтовый код, в отличие от текста, обрабатывается значительно быстрее.

Достоинство подобного способа выполнения программ — в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.

Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение было справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность.

 

Этому способствовал ряд усовершенствований:

- применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,

- широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,

- аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).

Основные возможности:

- автоматическое управление памятью;

- расширенные возможности обработки исключительных ситуаций;

- богатый набор средств фильтрации ввода/вывода;

- набор стандартных коллекций, таких как массив, список, стек и т. п.;

- наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);

- наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;

- встроенные в язык средства создания многопоточных приложений;

- унифицированный доступ к базам данных:

- на уровне отдельных SQL-запросов — на основе JDBC, SQLJ;

- на уровне концепции объектов, обладающих способностью к хранению в базе данных — на основе Java Data Objects (англ.) и Java Persistence API (англ.);

- поддержка шаблонов (начиная с версии 1.5);

- параллельное выполнение программ.

 

 




Дата добавления: 2015-01-30; просмотров: 38 | Поможем написать вашу работу | Нарушение авторских прав

<== 1 ==> | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.01 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав