среда, 29 октября 2014 г.

Технология Java

Технология Java включает в себя язык программирования и платформу.

Язык программирования Java.


Java - это высокоуровневый объектно-ориентированный язык программирования, который можно охарактеризовать следующими особенностями:
1. Простой
2. Обьектно-ориентированный
3. Кроссплатформенный
4. Безопасный
5. Надежный (Robust в оригинале)
6. Не зависящий от архитектуры
7. Портативный
8. Динамический
9. Интерпретируемый
10. Высоко производительный
11. Многопоточный
12. Распределенный

Простой
Язык Java простой, по тому что:
- синтаксис базируется на С++ (его легко изучать после C++)
- убрано много спорных и редко-используемых особенностей (указатели, перегрузка операторов итп.)
- не нужно заботиться о неиспользуемых объектах, т.к. в java присутствует автоматическая сборка мусора


Объектно-ориентированный
Это значит что мы организуем продукт, как комбинацию различных типов объектов, которые включают в себя данные и поведение.
ООП - это методология, которая упрощает разработку и обслуживание ПО, предоставляя некоторые правила.
Основные понятия ООП:
1. Объект
2. Класс
3. Наследование
4. Полиморфизм
5. Абстракция
6. Инкапсуляция


Кроссплатформенный
Java код может быть запущен на любой платформе (Windows, linux, Solaris, Mac/OS итп). Java код компилируется в платформонезависимый байт-код. Это отвечает принципу Write Once and Run Anywhere(WORA).


Безопасный
Java безопасна по тому что:
- нет указателей
- программы запускаются в песочнице виртуальной машины
- загрузчик классов (classloader)
- верификатор байт-кода - проверяет фрагменты кода, который может нарушить права доступа к объектам.
- менеджер безопасности - определяет, какие ресурсы класс может получить на чтение, запись итп.


Устойчивый
Java использует мощное управление памятью. Это отсутствие указателей, которые избегают проблем с безопасностью, автоматический сборщик мусора, отлавливание исключительных ситуаций и механизм проверки типов. Все это делает Java устойчивым языком.


Независимый от архитектуры
Это независящие от архитектуры системы особенности, например размер примитивных типов.


Портативный
Можно переносить байт-код Java на любую платформу
Высокопроизводительный
Java работает быстрее, чем традиционная интерпретация, по тому-что байт-код ближе к нативному коду, но все-же Java немного медленнее, чем компилируемые языки (С++ итп)


Распределенный
Мы можем создавать распределенные приложения в Java. RMI и EJB используются для создания таких приложений. Мы можем получить доступ к файлам вызывая методы с любой машины в интернете.


Многопоточный
Можно писать программы на Java, которые занимаются многими задачами одновременно определим несколько потоков. Главное преимущество многопоточности это разделение потоками общей памяти.


В языке Java весь исходный код сначала пишется в текстовые файлы с расширением .java. Затем исходные файлы компилируются в .class файлы компилятором javac. Эти .class файлы не содержат инструкций для процессора, вместо них они содержат байт-код - набор инструкций исполняемых виртуальной машиной Java (JVM). Виртуальная машина JVM исполняет файлы .class или .jar (упакованный в архив набор .class файлов), эмулируя инструкции, написанные для JVM, путем интерпретирования или использования just-in-time компилятора (JIT), такого, как HotSpot. Сейчас JIT компиляция используется в большинстве JVM в целях достижения большей скорости. Существуют также ahead-of-time компиляторы, позволяющие разработчикам приложений прекомпилировать файлы классов в родной для конкретной платформы код.
Как и Большинство виртуальных машин, Java Virtual Machine имеет stack-ориентированную архитектуру, свойственную микроконтроллерам и микропроцессорам.
JVM, которая является экземпляром JRE (Java Runtime Environment), вступает в действие при исполнении программ Java. После завершения исполнения, этот экземпляр удаляется сборщиком мусора. JIT является частью виртуальной машины Java, которая используется для ускорения выполнения приложений. JIT одновременно компилирует части байт-кода, которые имеют аналогичную функциональность, и, следовательно, уменьшает количество времени, необходимого для компиляции.

Платформа Java


Платформой является программная или аппаратная среда, в которой программа работает. Популярными платформами являются Microsoft Windows, Linux, Solaris OS, and Mac OS. Большинство платформ могут быть описаны в виде комбинации операционной системы и используемого оборудования. Платформа Java отличается от большинства других платформ в том, что это только программная платформа которая запускается поверх других аппаратных платформ.

Платформа Java состоит из 2х компонент:
- Виртуальная машина Java (JVM)
- Java Application Programming Interface (Java API)

JVM - это основа платформы Java и она портирована на различные аппаратные платформы.

Java API - это большая коллекция готовых программных компонентом, которые обеспечивают множество полезных возможностей. Они сгруппированы в библиотеки смежных классов и интерфейсов. Эти библиотеки известны как пакеты. 
Как платформонезависимая среда, платформа Java может быть немного медленнее, чем машинный код, однако прогресс в компиляторе и технологиях виртуальной машины приносит производительность, близкую к машинному коду не теряя кроссплатформенности.

Комментариев нет :

Отправить комментарий