АБОБА. Справочник по программированию на Java Методическое пособие
Скачать 242.41 Kb.
|
МногопоточностьЯзык Java был разработан в ответ на потребность создания интерактивных сетевых программ. Для достижения этой цели Java поддерживает написание многопоточных программ, которые могут одновременно выполнять много действий. Система времени выполнения Java содержит изящное, но вместе с тем сложное решение задачи синхронизации множества процессов, которое позволяет создавать действующие без перебоев интерактивные системы. Простой в применении подход к организации многопоточной обработки, реализованный в Java, позволяет программисту сосредоточивать свое внимание на конкретном поведении программы, а не на создании многозадачной подсистемы. Архитектурная нейтральностьОсновной задачей, которую ставили перед собой разработчики Java, было обеспечение долговечности и переносимости кода. Одна из главных проблем, стоящих перед программистами – отсутствие гарантий того, что код, созданный сегодня, будет успешно выполняться завтра, даже на том же самом компьютере. Операционные системы и процессоры модернизируются, а все изменения в основных системных ресурсах могут приводить к неработоспособности программ. Пытаясь изменить эту ситуацию, проектировщики приняли ряд жестких решений в языке Java и виртуальной машине Java. Они поставили перед собой цель, чтобы “программы создавались лишь однажды, в любой среде, в любое время и навсегда”. В значительной степени эта цель была достигнута. Интерпретируемость и высокая производительностьКак уже говорилось, выполняя компиляцию программ в промежуточное представление, называемое байт-кодом, Java позволяет создавать многоплатформенные программы. Этот код может выполняться в любой системе, которая реализует виртуальную машину Java. Самые первые попытки получения многоплатформенных решений добивались поставленной цели за счет снижения производительности. Как пояснялось ранее, байт-код Java был тщательно спроектирован так, чтобы посредством использования JIT-компиляции его можно было с высокой производительностью легко преобразовывать во внутренний машинный код. Системы времени выполнения Java, которые предоставляют эту функцию, сохраняют все преимущества кода, не зависящего от платформы. РаспределенностьЯзык Java предназначен для распределенной среды Internet, поскольку он поддерживает протоколы семейства TCP/IP. Фактически обращение к ресурсу через URL-адрес не очень отличается от обращения к файлу. Java поддерживает также удаленный вызов методов (Remote Method Invocation – RMI). Это свойство позволяет программам вызывать методы по сети. Динамический характерПрограммы Java содержат значительный объем информации времени выполнения, которая используется для проверки полномочий и предоставления доступа к объектам во время выполнения. Это позволяет выполнять безопасную и технически оправданную динамическое связывание кода. Это обстоятельство исключительно важно для устойчивости среды Java, в которой небольшие фрагменты байт-кода могут динамически обновляться в действующей системе. Обзор языка JavaКак и во всех компьютерных языках, элементы Java существуют не сами по себе. Скорее они работают совместно, образуя язык в целом. Однако эта взаимосвязанность может затруднять описание какого-то одного аспекта Java, не касаясь при этом нескольких других аспектов. Часто для понимания одного свойства требуется наличия знаний о другом. Поэтому в настоящей главе представлен краткий обзор нескольких основных свойств языка Java. Объектно-ориентированное программированиеОбъектно-ориентированное программирование (ООП) – это основная характеристика языка Java. Фактически все Java-программы являются, по меньшей мере, частично, объектно-ориентированными. Язык Java связан с ООП настолько тесно, что прежде чем приступать к написанию на нем даже простейших программ, следует вначале ознакомиться с базовыми принципами ООП. Поэтому ознакомление с материалом этой главы мы начнем с рассмотрения теоретических аспектов ООП. Все компьютерные программы состоят из двух элементов: кода и данных. Более того, концептуально программа может быть организована вокруг своего кода или вокруг своих данных. То есть организация некоторых программ определяется тем “что происходит”, а других – тем, “на что оказывается влияние”. Существуют две концепции создания программы. Первый способ называют моделью, ориентированной на процессы. Этот подход характеризует программу в виде последовательностей линейных шагов (т.е. кода). Модель, ориентированную на процессы, можно рассматривать в качестве кода, воздействующего на данные. Процедурные языки вроде C достаточно успешно используют эту модель. Однако этот подход порождает ряд проблем с увеличением размеров и сложности программ. Для преодоления увеличивающейся сложности была начата разработка подхода, названного объектно-ориентированным программированием. Объектно-ориентированное программирование организует программу вокруг ее данных (т.е. объектов) и набора подробно определенных интерфейсов к этим данным. Объектно-ориентированную программу можно характеризовать как данные, управляющие доступом к коду. |