[Закрыть]
 
popoff.donetsk.ua
Если нет больших материальных лишений, грубых телесных повреждений, счастью мешают предрассудки, тени прошлого, привидения, призраки, которые душат человека и стоят на его пути к счастью.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - ДонНТУ - Программирование на Java - Лекция 1. История создания и основные термины
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Ваш возраст (не обязательно):

Введите целое число от 3 до 99.
Почему? (не обязательно):
Другие вопросы
Поиск по сайту
Реклама
porter.mir.dn.ua
Статистика

Лекция 1. История создания и основные термины

Постоянный адрес статьи

История создания

Рождению языка Java предшествовала довольно интересная история. В 1990 году разработчик ПО компании Sun Microsystems Патрик Нотон (Patrick Naughton) понял, что ему надоело поддерживать сотни различных интерфейсов программ, используемых в компании, и сообщил исполнительному директору Sun Microsystems и своему другу Скотту МакНили (Scott McNealy) о своем намерении перейти работать в компанию NeXT. МакНили, в свою очередь, попросил Нотона составить список причин своего недовольства и выдвинуть такое решение проблем, как если бы он был Богом и мог исполнить все, что угодно.

Нотон, хотя и не рассчитывал на то, что кто-то обратит внимание на его письмо, все же изложил свои претензии, беспощадно раскритиковав недостатки Sun Microsystems, в частности, разрабатываемую в тот момент архитектуру ПО NeWS. К удивлению Нотона, его письмо возымело успех: оно было разослано всем ведущим инженерам Sun Microsystems, которые не замедлили откликнуться и высказать горячую поддержку своему коллеге и одобрение его взглядов на ситуацию в Sun Microsystems. Обращение вызвало одобрение и у высшего руководства компании, а именно, у Билла Джоя (Bill Joy), основателя Sun Microsystems, и Джеймса Гослинга (James Gosling), начальника Нотона.

В тот день, когда Нотон должен был уйти из компании, было принято решение о создании команды ведущих разработчиков с тем, чтобы они делали что угодно, но создали нечто необыкновенное. Команда из шести человек приступила к разработке нового объектно-ориентированного языка программирования, который был назван Oak (дуб), в честь дерева, росшего под окном Гослинга.

Java

Java (джава, ява, жарг. жаба) — объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems с 1991 года и официально выпущенный 23 мая 1995 года. Изначально новый язык программирования назывался Oak и разрабатывался для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания апплетов, приложений и серверного программного обеспечения.

Основные возможности

  • расширенные возможности обработки исключительных ситуаций;
  • богатый набор средств фильтрации ввода/вывода;
  • встроенные простые классы, такие как массив, список, стек и т. п.;
  • наличие простых средств создания сетевых приложений (в т.ч. используя протокол RMI);
  • наличие классов, позволяющих создавать http-запросы и ответы;
  • встроенные в язык средства создания многопоточных приложений;
  • унифицированный доступ к базам данных на основе JDBC и SQLJ.

Апплет

Апплет — это программа, написанная на языке Java, предназначенная для работы в веб-браузере в виде включения в веб-страницу.

Любой апплет должен корректно работать в любом браузере и на любой аппаратной платформе, где присутствует виртуальная Java-машина. Причём в отличие от обычного приложения на Java, апплет работает в так называемой «песочнице» (sandbox), которая ограничивает доступ апплета к компьютеру пользователя, для предотвращения злонамеренных действий.

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

Байт-код

Байт-код или байткод (англ. byte-code), иногда также используется термин псевдокод — машинно-независимый код низкого уровня, генерируемый компилятором и исполняемый виртуальной машиной. Большинство инструкций байт-кода эквивалентны одной или нескольким командам ассемблера. Компиляция в байт-код занимает промежуточное положение между компиляцией в машинный код и интерпретацией.

Виртуальная машина

Виртуальной машиной (англ. virtual machine) называют программную или аппаратную среду, исполняющую некоторый код (например, байт-код, шитый код, p-code или машинный код реального процессора), или спецификацию такой системы.

Зачастую виртуальная машина эмулирует работу реального компьютера. На виртуальную машину, так же как и на реальный компьютер можно инсталлировать операционную систему, у виртуальной машины так же есть BIOS, оперативная память, жёсткий диск (выделенное место на жёстком диске реального компьютера), могут эмулироватся периферийные устройства. На одном компьютере может функционировать несколько виртуальных машин.

Виртуальные машины могут использоваться:

  • для защиты информации и ограничения возможностей процессов
  • для исследования производительности ПО или новой компьютерной архитектуры
  • для эмуляции различных архитектур (например, эмулятор игровой приставки)
  • с целью оптимизации использования ресурсов мощных компьютеров
  • вредоносным кодом для управления инфицированной системой: вирус PMBS, обнаруженный в 1993 году, а также руткит SubVirt, созданный в 2006 году Microsoft Research, создавали виртуальную систему, которой ограничивался пользователь и все защитные программы (антивирусы и прочие)

Виртуальная Java-машина

Java Virtual Machine, сокращенно Java VM, JVM — виртуальная машина Java — основная часть исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина Java интерпретирует и исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java.

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

Часто к недостаткам этого подхода относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность. Этому способствовал ряд усовершенствований: применение технологий JITs (Just-In-Time compilers) позволяющая переводить байт-код в машинный код во время исполнения программы с возможностью сохранения версий класса в машинном коде, широкое использование native-кода в стандартных библиотеках, а также аппаратные средства, обеспечивающие ускоренную обработку байт-кода.

В начале развития платформы Java существовали две конкурирующие реализации Java VM — одна от фирмы Sun Microsystems, создателя языка Java, для различных платформ (Windows, Mac OS, Unix), и другая — от фирмы Microsoft, ориентированная только на платформу Windows и, по утверждениям Microsoft, «специально оптимизированная для быстрого выполнения Java-кода на платформе Microsoft Windows».

Однако Microsoft JVM была не полностью совместима со стандартом Java, введенным Sun, а также имела существенные проблемы с производительностью при работе под большими нагрузками (при большом числе одновременно выполняемых потоков) и с безопасностью. Фирма Sun посчитала такую ситуацию недопустимой и решила, что Microsoft занимается намеренной дискредитацией и профанацией платформы Java, распространяя свою версию виртуальной машины Java. На этом основании Sun неоднократно подавала в суд на Microsoft, и последовательно добилась сначала того, что Microsoft потеряла право называть свою реализацию JVM Java VM. С этого момента Microsoft стала называть свой продукт просто Microsoft VM. Затем Microsoft потеряла право встраивать свою VM в браузеры и операционные системы. После этого Microsoft вынуждена была изъять свою VM из поставки Windows и из пакета IE, но могла, согласно решению суда, предлагать ее отдельно для скачивания на сайте. Затем Sun добилась прекращения разработки новых версий Microsoft VM и прекращения выпуска обновлений к ней, а затем и снятия Microsoft VM из списка доступных для скачивания программ на сайте Microsoft. С этого момента Sun стала фактическим монополистом в области Java, предлагая единственную реализацию Java VM.

Java 2

Java 2, или Java 2.0 — дальнейшее развитие и усовершенствование спецификации исходного стандарта языка и платформы Java, на который теперь принято ссылаться как на Java 1.0. В настоящее время спецификация платформы Java 2 продолжает интенсивно развиваться и обогащаться, пополняясь новыми возможностями.

Внутри Java существуют 3 основных семейства технологий:

  • J2EE — Java Platform, Enterprise Edition, сокращенно Java EE, для создания программного обеспечения для средних и крупных предприятий. Цель спецификаций — обеспечить масштабируемость приложений и целостность данных во время работы системы. Технологию J2EE используют в настоящее время большинство банков и крупных корпораций для организации веб-порталов и предоставления услуг онлайн, особенно если необходимо обеспечить бесперебойную работу многих тысяч пользователей. Популярности J2EE способствует то, что Sun предлагает бесплатный комплект разработки, SDK, позволяющий предприятиям разрабатывать свои системы не тратя больших средств.
  • Java Platform, Standard Edition, сокращенно Java SE (ранее Java 2 Standard Edition или J2SE) - стандартная версия платформы Java 2, предназначенная для создания и исполнения апплетов и приложений, рассчитанных на индивидуальное пользование или на использование в масштабах малого предприятия.
  • J2ME — Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности (ограниченный объём памяти, малый размер дисплея, питание от портативной батареи, а также низкоскоростные и недостаточно надёжные коммуникационные возможности) - в мобильных телефонах, PDA, встроенных системах. В J2ME имеется две конфигурации — CLDC (Connected Limited Device Configuration — конфигурация устройства с ограниченными коммуникационными возможностями) и CDC (Connected Device Configuration — конфигурация устройства с нормальными коммуникационными возможностями).

    Конфигурация CLDC успешно используется в большинстве современных мобильных телефонов и портативных органайзеров. По данным компании Sun Microsystems к концу 2004 года в мире было выпущено более 570 миллионов мобильных устройств с поддержкой этой конфигурации Java. Это делает J2ME доминирующей технологией Java в мире. Объёмы производства мобильных телефонов значительно превышают количество других компьютерных устройств, способных исполнять приложения на Java (например, персональных компьютеров).

Java Foundation Classes

Java Foundation Classes, сокращенно JFC — набор библиотек классов на языке Java, предоставляющих программам на Java удобный API для создания графического интерфейса пользователя (GUI). В состав JFC входят, в частности, библиотека Swing, Java 2D и многие другие, включая исторически первую библиотеку Java для создания пользовательских интерфейсов — Abstract Window Toolkit.

Название Java Foundation Classes перекликается с названием известной оконной библиотеки MFC (Microsoft Foundation Classes) для платформ Windows. И действительно, функционально JFC решает задачи, сходные с теми, которые решает MFC — как и MFC, JFC предназначена прежде всего для создания графических пользовательских интерфейсов. Однако идеологически JFC совершенно отлична от MFC. Если MFC создавалась для облегчения работы программиста в среде Windows, для предоставления ему абстрактных оберток над «голым» Windows API (на котором в принципе возможно реализовать все то же самое, не пользуясь MFC), то JFC является интегральной частью самой платформы Java, а не оберткой над неким нативным API. Кроме того, JFC, будучи реализована на полностью объектно-ориентированном языке Java, гораздо более последовательно соответствует идеологии и парадигме объектно-ориентированного программирования.

Java Runtime Environment

Java Runtime Environment, сокращенно JRE — исполнительная среда Java. Состоит из виртуальной машины Java — Java Virtual Machine, обеспечивающей интерпретацию байт-кода Java и его выполнение, и набора runtime-библиотек поддержки, предоставляющих поддерживаемые стандартом Java классы и методы, которые могут быть вызваны из Java-программы.

В отличие от классических runtime-библиотек, которые каждая программа на некотором языке программирования должна была «таскать с собой» и устанавливать на машине пользователя в случае их отсутствия (в качестве примера можно привести runtime-библиотеки Visual Basic), библиотеки классов Java входят в состав стандартной исполняющей среды Java (JRE) и автоматически предоставляются, если на машине пользователя установлен JRE.

Песочница

Песочница (англ. sandbox, также существуют схожие понятия — англ. honeypot, англ. fishbowl) — в компьютерной безопасности, механизм для безопасного исполнения программ. Песочницы часто используют для запуска непротестированного кода, непроверенного кода из неизвестных источников, а также для запуска и обнаружения вирусов.

Песочница обычно предоставляет собой жестко контролируемый набор ресурсов для исполнения гостевой программы — например, место на диске или в памяти. Доступ к сети, возможность сообщаться с главной операционной системой или считывать информацию с устройств ввода обычно либо частично эмулируют, либо сильно ограничивают. Песочницы представляют собой пример виртуализации.

Сервлет

Сервлет — Java программа, которая расширяет функциональные возможности Web-сервера, динамически генерируя содержание и взаимодействуя с Web-клиентами при помощи принципа запрос-ответ. Заметьте что Web-клиентами могут быть не обязательно браузеры, это могут быть любые программы использующие HTTP протокол.

Источники

Java. Материал из Википедии — свободной энциклопедии
http://ru.wikipedia.org/wiki/Java

Кутузов А.В. Программирование на языке Java. Революция по имени Java
http://www.javable.com/tutorials/kartuzov/ch1/

Официальная страница Java EE
http://java.sun.com/javaee/

Сайт потребителей и разработчиков Java
http://www.juga.ru/

Сообщество Java-разработчиков КПИ
http://jug.org.ua/

Последняя модификация: 06.09.06 03:02

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>