Отличительные особенности языка Java

Ключевые особенности JavaРассмотрение истории создания и развития языка Java было бы неполным без описания особенностей, характерных для Java. Основным фактором, обусловив­шим изобретение Java, стала потребность в обеспечении переносимости и без­опасности, но свою роль в формировании окончательной версии языка сыграли и другие факторы. Группа разработчиков обобщила основные понятия Java и со­ставила следующий перечень его особенностей:

  • простота;
  • безопасность;
  • переносимость;
  • объектная ориентированность;
  • надежность;
  • многопоточность;
  • архитектурная нейтральность;
  • интерпретируемость;
  • высокая производительность;
  • распределенность;
  • динамичность.


 

Мы уже рассмотрели такие особенности, как безопасность и переносимость. А теперь поясним значение остальных элементов этого списка.

 

Простота

Язык Java был задуман как простой в изучении и эффективный в употреблении профессиональными программистами. Овладеть языком Java тем, у кого имеется некоторый опыт программирования, не составит особого труда. Если же вы уже знакомы с основными принципами объектно-ориентированного программирова­ния, то изучить Java вам будет еще проще. А от тех, кто имеет опыт программиро­вания на C++, переход к java вообще потребует минимум усилий. Язык Java наследу­ет синтаксис C/C++ и многие объектно-ориентированные свойства C++, поэтому для большинства программистов изучение Java не составит больших трудностей.

 

Объектная ориентированность

Хотя предшественники языка Java и оказали влияние на его архитектуру и син­таксис, при его проектировании не ставилась задача совместимости по исходному коду с каким-нибудь другим языком. Это позволило группе разработчиков созда­вать Java, по существу, с чистого листа. Одним из следствий этого явился четкий, практичный, прагматичный подход к объектам. Помимо того, что язык Java поза­имствовал свойства многих удачных объектно-программных сред, разработанных на протяжении нескольких последних десятилетий, в нем удалось достичь золотой середины между строгим соблюдением принципа “все элементы программы являются объектами” и более прагматичного принципа “прочь с дороги”. Объектная модель Java проста и легко расширяема. В то же время такие элементарные типы данных, как целочисленные, сохраняются в виде высокопроизводительных ком­понентов, не являющихся объектами.

 

Надежность

Многоплатформенная среда веб предъявляет к программам повышенные тре­бования, поскольку они должны надежно выполняться в разнотипных системах. Поэтому способность создавать надежные программы была одним из главных прио­ритетов при pa3pa6oTKeJava. Для обеспечения надежности Bjava накладывается ряд ограничений в нескольких наиболее важных областях, что вынуждает программи­стов выявлять ошибки на ранних этапах разработки программы. В то же время Java избавляет от необходимости беспокоиться по поводу многих наиболее часто встре­чающихся ошибок программирования. А поскольку Java — строго типизированный язык, то проверка кода выполняется во время компиляции. Но проверка кода де­лается и во время выполнения. В результате многие трудно обнаруживаемые про­граммные ошибки, которые часто приводят к возникновению с трудом воспроизво­димых ситуаций во время выполнения, попросту невозможны в программе Hajava. Предсказуемость кода в разных ситуациях — одна из основных особенностей Java.

Чтобы понять, каким образом достигается надежность программ на Java, рас­смотрим две основные причины программных сбоев: ошибки управления памя­тью и неправильная обработка исключений (т.е. ошибки при выполнении). В тра­диционных средах создания программ управление памятью — сложная и трудоем­кая задача. Например, в среде C/C++ программист должен вручную резервировать и освобождать всю динамически распределяемую память. Иногда это ведет к возникновению трудностей, поскольку программисты забывают освободить ранее зарезервированную память или, что еще хуже, пытаются освободить область памяти, все еще используемую другой частью кода. Java полностью исключает такие ситуации, автоматически управляя резервированием и освобождением памяти. (Освобождение оперативной памяти полностью выполняется автоматически, по­скольку Java предоставляет средства сборки неиспользуемых объектов в “мусор”.) В традиционных средах условия для исключений часто возникают в таких ситуа­циях, как деление на нуль или отсутствие искомого файла, а управление ими долж­но осуществляться с помощью громоздких и трудных для понимания конструкций. Java облегчает выполнение этой задачи, предлагая объектно-ориентированный механизм обработки исключений. В грамотно написанной программе Hajava все ошибки при выполнении могут (и должны) обрабатываться самой программой.

 

Многопоточность

Язык Java был разработан в ответ на потребность создавать интерактивные сетевые программы. Для этой цели в Java поддерживается написание много­поточных программ, способных одновременно выполнять многие действия. Исполняющая система Java содержит изящное, но вместе с тем сложное решение задачи синхронизации многих процессов, которое позволяет строить устойчиво работающие интерактивные системы. Простой подход к организации многопо­точной обработки, реализованный в java, позволяет программистам сосредоточи­вать основное внимание на конкретном поведении программы, а не на создании многозадачной подсистемы.

 

Архитектурная нейтральность

Основной задачей, которую ставили перед собой разработчики Java, было обе­спечение долговечности и переносимости кода. Одной из главных трудностей, стоявших перед разработчиками, когда они создавали Java, было отсутствие вся­ких гарантий, что код, написанный сегодня, будет успешно выполняться завтра — даже на одном и том же компьютере. Операционные системы и процессоры по­стоянно совершенствуются, и любые изменения в основных системных ресурсах могут стать причиной неработоспособности программ. Пытаясь каким-то образом изменить это положение, разработчики приняли ряд жестких решений в самом языке и виртуальной машине Java. Они поставили перед собой следующую цель:

“написано однажды, выполняется везде, в любое время и всегда”. И эта цель была в значительной степени достигнута.

 

Интерпретируемость и высокая производительность

Как упоминалось ранее, выполняя компиляцию программ в промежуточное представление, называемое байт-кодом, Java позволяет создавать межплатфор­менные программы. Такой код может выполняться в любой системе, на которой реализована виртуальная машина JVM. С первых же попыток разработать межплатформенные решения удалось достичь поставленной цели, хотя и за счет сни­жения производительности. Как пояснялось ранее, байт-код Java был тщательно разработан таким образом, чтобы его можно было с высокой эффективностью преобразовывать непосредственно в машинозависимый код на конкретной платформе с помощью динамического компилятора. Исполняющие системы Java, обе­спечивающие такую возможность, сохраняют все преимущества кода, не завися­щего от конкретной платформы.

 

Распределенность

Язык Java предназначен для распределенной среды Интернета, поскольку он поддерживает семейство сетевых протоколов TCP/IP. По существу, обращение к ресурсу по унифицированному указателю информационного ресурса (URL) мало чем отличается от обращения к файлу. В Java поддерживается также удаленный вы­зов методов (RMI — Remote Method Invocation). Такая возможность позволяет вы­зывать методы из программ через сеть.

 

Динамичность

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

 

Вас заинтересует / Intresting for you:

Распространенные заблуждения о...
Распространенные заблуждения о... 2490 просмотров Ирина Светлова Thu, 21 Jun 2018, 18:35:12
Выбор среды для разработки код...
Выбор среды для разработки код... 2538 просмотров Stas Belkov Sun, 10 Jun 2018, 14:21:35
Аплеты Java и Интернет
Аплеты Java и Интернет 2634 просмотров Ирина Светлова Sat, 09 Jun 2018, 10:17:34
Создание языка Java
Создание языка Java 2317 просмотров Дэн Mon, 05 Nov 2018, 09:36:39
Войдите чтобы комментировать