Java - Описание языка программирования
Primary tabs
Forums:
Поговорив об истории создания Java, перейдём к его "устройству".
Виртуальные машины счастья
Как уже было сказано в заметке об истории - программа на Яве компилируется не в машинный код для данного процессора а в так называемый код виртуальной машины Java (Java Virtual Machine - JVM)
Данный приём не способствует повышению производительности, зато обеспечивает упрощённую реализацию столь желанной переносимости программ (для разработчиков языка, для прикладных же программистов и код является абсолютно универсальным для все платформ).
Также виртуальная машина позволяет контролировать исполняемый код и таким образом обезопасить остальные программы в системе.
Для некоторого увеличения производительности существует компилятор JIT (Just in time - часть JVM), который позволяет "на лету" компилировать фрагменты программы в исполняемый код платформы. При этом компиляция всей программы оказывает нецелесообразной - так как Java выполняет ряд проверок именно во время исполнения.
При использовании JIT безопасность (изолированность) кода программы сохраняется - ибо JVМ "продолжает" следить за ним =))
Обещания
Ява обещает вам некоторые собственные свойства - так это или нет мы узнаем дальше, а пока всё же упомянем о них:
- Простота - для кто что-то когда-то программировал изучение Java должно пройти легко и приятно
- Безопасность - это мы обсуждали выше и раньше, и возможно вернёмся в дальнейшем.
- Переносимость - уже обсуждали - является центральной идеей создания Явы
- Объектная ориентированность - одно из немногих свойств Явы, в котором мало кто сомневается =) -хотя тем не менее примитивы остались примитивами (их, к счастью, не сделали объектами) - что положительно сказалось на производительности
- Устойчивость - проверка кода явы происходит не только во время компиляции, но и во время выполнения - так что можно сказать, что Ява - это "предсказуемый" язык. Ява сама управляет памятью (это избавляет нас от первого рода проблем) -ну и второй камень преткновения - это процесс обработки исключений, который в яве поставлен "как надо" - и фактически предоставлен удобный механизм поставки под контроль исключительных ситуаций - они могут и должны обрабатываться.
- Многопоточность - имеется изящный и вместе с тем - сложный механизм реализации взаимодействия потоков, он позволяет программисту сосредоточиться непосредственно на задаче - без раздумий о том как бы организовать взаимодействие потоков самому.
- Архитектурная нейтральность - Г. Шилдт указывает в этом пункте прежде всего на то, что программы "написанные однажды, должны выполняться всегда" - не зависить о ОС и иных особенностей
- Интерпретируемость - это правда =) Java - интерпретируемый язык
- Высокая производительность - Jit конечно есть, но не всегда помогает
- Распределённый характер - как было сказано ранее, Ява - подстраивался под нужды Интернет - в частности были созданы средства "прозрачного" для прикладного программиста обращения к удалённым файлам, и более того - средства удалённого вызова методов (Remote Method Invocation - RMI)
- Динамический характер - ява довольно мощно контролирует программу на этапе выполнения, а потому в памяти оказывается куча дополнительной информации - но это оправдано так как проводятся проверки полномочий доступа к объектам во время выполнения ,а также динамическое связывание кода, которое "технически оправдано".
Эволюция Java - развитие во времени.
Именно благодаря собственному оперативному развитию Java занимает сегодня лидирующие позиции среди популярных языков программирования. Разница между версиями 1.0 и 1.1 уже была значительной, а Java 2.0 открывает "современную эру" Явы =)
Концепции
Как было сказано выше, Java является объектно-ориентированным языком, в связи с чем мы временно оставим эту страницу и поговорим об ООП.
- Log in to post comments
- 9953 reads