Обзор языка Java
Язык Java похож на С и C++. Их взаимосвязь становится понятной, если проследить историю создания этих языков. Язык С был разработан в 70-х гг. как язык создания операционных систем (в основном системы UNIX). Разработчикам языка хотелось, чтобы он обеспечивал возможность доступа к архитектуре базового аппаратного компьютера. Когда Страуструп (Stroustrup) разрабатывал язык C++, он позаимствовал концепцию класса из языка Simula и концепцию наследования из языка Smalltalk. Тем не менее язык С, ставший основой C++, не был при этом модифицирован и его полезные для системного программирования свойства были перенесены в C++. Когда программисты компании Sun разрабатывали Java, они сохранили основные синтаксические структуры, концепции классов и наследования, имеющиеся в C++, но отказались от некоторых необязательных свойств. В результате язык Java оказался более компактным, чем C++, но с более рациональными синтаксисом и семантикой.
По большей части Java напоминает C++ без тяжелого наследия С, которое обусловливает слабость многих программ на языке C++. Данные в Java строго типизированы; в частности, целочисленный, логический и символьный типы принадлежат к различным типам данных. Также отдельным типом данных являются массивы, а строковый тип данных в Java - это не просто массив символов. Все эти свойства позволяют компилятору Java более полно отслеживать ошибки в программах.
Количество способов выполнения некоторых действий уменьшилось. Например, вызов метода - единственный способ подключения подпрограмм. Поскольку все объекты являются экземплярами каких-либо классов, то отпадает необходимость в специальных вызовах функций или процедур. Структурные объекты struct также не нужны, так как тот же эффект достигается при помощи переменных экземпляра, или полей, в определении классов.
В языке Java неявным образом присутствуют указатели, но соответствующий тип данных отсутствует. Это означает, что от пользователя скрыты все проблемы с фрагментацией памяти, ссылками на несуществующие объекты и другие неприятности, связанные с указателями. Распределение памяти для указателей происходит неявным образом во время создания объектов класса и выполнения операции new.
Для создания программы на языке Java в первую очередь создается файл имя_файла.java. Имя файла должно совпадать с именем класса, создаваемого в данной программе. Когда программа написана, вызывается компилятор Java. В результате компиляции получается файл с названием имя_файла.class, содержащий байт-коды. Этот файл можно выполнить с помощью интерпретатора Java (виртуальная машина Java).
Можно сказать, что язык Java является достаточно простым языком: он имеет ту же ясную структуру, что и C++, и при этом лишен той неуклюжести, которая свойственна С. Тем не менее эффективность выполнения программ на Java несколько ниже, так как многие из структур языка нуждаются в проверке во время выполнения программы. К тому же, поскольку программы на Java чаще всего интерпретируются как апплеты в виртуальной машине Java, скорость выполнения программ на Java несколько ниже, чем скорость выполнения программ, написанных на компилируемых языках. Но при оценке Java надо помнить об основной области применения этого языка: поскольку он создавался для web-браузеров, потери в скорости выполнения фактически не влияют на результат. Причина этого в том, что скорость передачи информации по сети и скорость обработки и отображения информации на мониторе компьютера все равно ниже скорости работы компьютера пользователя. Поэтому большая часть времени тратится на ожидание очередной порции информации, запрошенной на сервере.
|