Революция по имени java


1.1 История Java

1.1. История Java

Приблизительно в 1990 Джеймс Гослинг, Билл Джой, Патрик Ногтон и другие в Sun Microsystems начали разрабатывать язык по имени Oak. Прежде всего они видели применение Java для встроенных микрокомпьютерных модулей бытовой техники, в видеомагнитофонах, тостерах, а также для PDA (personal data assistants).

Чтобы решать эти задачи, Oak должен был быть:
Независимым от платформы (с тех пор как продукцию стали вовлекать многие изготовители)
Чрезвычайно надежным
Компактным.

Однако, в 1993 рынки интерактивного телевидения и PDA пошли на убыль. Тогда бурно развивался internet и сети. Так что Sun сдвинула целевой рынок в сторону internet-приложений и заменила название проекта на Java.

В основе Java лежат языки С и C++. Его синтаксис получается из С, а ориентированные на объект особенности влияет C++.

В 1994 Sun’s выпустила браузер HotJava. Он был написан на Java за несколько месяцев, что показало мощность апплетов, программ которые работают в пределах браузера, а также для того, чтобы ускорить процесс разработки программ.

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

Однако, ранние версии Java не обладали широтой и глубиной возможностей, необходимых для приложений клиента (то есть потребителя). Например, графика в Java 1.0 казалась грубой и неуклюжей по сравнению программным обеспечением, разработанным на С и других языках.

Наряду с тем, что Java отставал в развитии клиентских приложений, он стал очень популярным языком для развития предприятий, или микропрограммных средств, приложений типа интерактивной памяти, диалоговых обработок запросов, интерфейсов базы данных, и т.д. Java также стал весьма обычным на небольших платформах типа сотовых телефонов и PDAs.

1.1.1. Каков Java?

Java — полностью объектно-ориентированный язык программирования. В Java отсутствует понятие процедур. С помощью Java мы можем решить различные задачи и тот же самый круг проблем, что и на других языках программирования. Java может использоваться для создания двух типов программ: Приложений и Апплетов. Приложение — программа, которая выполняется на нашем компьютере, под его операционной системой. Приложения Java могут быть непосредственно выполнены, используя интерпретатор Java. Апплет — небольшая программа работающая с окнами, которые внедрены в страницу HTML. Чтобы выполнить Java апплеты, нужна поддержка Java Web-браузером, то есть Internet Explorer, Netscape Navigator, Hot Java и т.д. или средство просмотра апплета. Также Java допускал другие средства, с помощью которых браузер мог выполнить программу Java на нашей системе.

Jdk12-doc zip. Последние новости о самой передовой технологии программирования смотрите на странице

Название Jdk12-doc zip. Последние новости о самой передовой технологии программирования смотрите на странице
страница 1/23
Тип Документы
Данный курс был впервые прочитан в осеннем семестре 1998 года для студентов 5 курса специальности 2204 «Программное обеспечение вычислительной техники и автоматизированных систем». В 1999 году добавлена информация по встроенным классам, анонимным массивам, пустым константам и др. особенностям. Готовится материал по Java 1.2 (JDBC, servlets, Swing).

Для освоения материала курса в принципе достаточно пакета разработчика на языке Java — Java Development Kit 1.1.8. Документация (на английском языке) находится в отдельном файле jdk117A-doc.zip. Однако если Вас интересуют новые возможности платформы Java 2, можете воспользоваться пакетом Java Development Kit 1.2.2 с соответсвующей докуметацией jdk12-doc.zip. Последние новости о самой передовой технологии программирования смотрите на странице Sun Microsystems.

Если у Вас отсутствуют возможности работы в On-Line, Вы можете перекачать полный текст лекций в архиве — java.zip, а примеры examples.zip поместить в подкаталог examples. При распаковке пользуйтесь архиватором, поддерживающим длинные имена.

Г лава 1 Революция по имени Java

Вообще опасно объявлять каждую новую технологию программирования революционной. Если вы поторопитесь подать свой голос за признание технологии, подобной той, которая реализована в языке Java, революционной — вас могут закидать тухлыми яйцами или занести в разряд пустозвонов, падких на модные новинки. Что же в таком случае делает тот или иной продукт революционным ? Он не может быть только лишь компактней, быстрее и дешевле. Такой продукт должен изменить весь стиль работы, радикально упростив решение сложных проблем.

Создание языка Java — это действительно один из самых значительных шагов вперед в области разработки сред программирования за последние 20 лет. Язык HTML (Hypertext Markup Language — язык разметки гипертекста) был необходим для статического размещения страниц во “Всемирной паутине” WWW (World Wide Web). Язык Java потребовался для качественного скачка в создании интерактивных продуктов для сети Internet.

Три ключевых элемента объединились в технологии языка Java и сделали ее в корне отличной от всего, существующего на сегодняшний день.

  • Java предоставляет для широкого использования свои апплеты (applets) — небольшие, надежные, динамичные, не зависящие от платформы активные сетевые приложения, встраиваемые в страницы Web. Апплеты Java могут настраиваться и распространяться потребителям с такой же легкостью, как любые документы HTML.
  • Java высвобождает мощь объектно-ориентированной разработки приложений, сочетая простой и знакомый синтаксис с надежной и удобной в работе средой разработки. Это позволяет широкому кругу программистов быстро создавать новые программы и новые апплеты.
  • Java предоставляет программисту богатый набор классов объектов для ясного абстрагирования многих системных функций, используемых при работе с окнами, сетью и для ввода-вывода. Ключевая черта этих классов заключается в том, что они обеспечивают создание независимых от используемой платформы абстракций для широкого спектра системных интерфейсов.

Давайте поближе познакомимся со всеми этими тремя аспектами, но сначала – история создания.

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

Рождению языка 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 (дуб), в честь дерева, росшего под окном Гослинга.

Вскоре компания Sun Microsystems преобразовала команду Green в компанию First Person. Новая компания обладала интереснейшей концепцией, но не могла найти ей подходящего применения. После ряда неудач неожиданно ситуация для компании резко изменилась: был анонсирован броузер Mosaic — так родился World Wide Web, с которого началось бурное развитие Internet. Нотон предложил использовать Oak в создании Internet-приложений. Так Oak стал самостоятельным продуктом, вскоре был написан Oak-компилятор и Oak-браузер «WebRunner». В 1995 году компания Sun Microsystems приняла решение объявить о новом продукте, переименовав его в Java (единственное разумное объяснение названию — любовь программистов к кофе). Когда Java оказалась в руках Internet, стало необходимым запускать Java-аплеты — небольшие программы, загружаемые через Internet. WebRunner был переименован в HotJava и компания Netscape встала на поддержку Java-продуктов.

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

Именно броские Web-страницы с анимацией привлекли большинство ранних приверженцев языка Java. Поскольку пользователи не сразу смогли полностью освоить наиболее революционные аспекты Java, этот язык часто сравнивался с другими технологиями для загрузки динамических изображений и простого взаимодействия с Web-клиентами. Компании, традиционно занимающиеся разработкой мультимедиа-технологий, например, Adobe или MacroMedia, утверждали, что их продукты предоставляют те же возможности, что и Java. По мнению Kaleida, Taligent и NeXT, их собственные объектно-ориентированные среды разработки были не менее революционны. Microsoft заявлял о победе технологии десятилетней давности. На самом деле ничто не может сравниться с тем, что вы откроете для себя, ощутив мощь программирования на языке Java.

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

Революционный язык программирования

Язык должен был воплощать следующие качества: простоту и мощь, безопасность, объектную ориентированность, надежность, интерактивность, архитектурную независимость, возможность интерпретации, высокую производительность и легкость в изучении. Даже если вы никогда не напишете ни одной строки на языке Java, знать о его возможностях весьма полезно, поскольку именно перечисленные выше свойства языка придают динамику страницам Всемирной паутины.

Простота и мощь

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

В популярной литературе наших дней, особенно если речь заходит об Internet, стало модной темой обсуждение вопросов безопасности. Люди уверены, что использование Internet в коммерческой деятельности равносильно написанию номера своей кредитной карточки на стенке телефонной будки. Один из ключевых принципов разработки языка Java заключался в обеспечении защиты от несанкционированного доступа. Программы на Java не могут вызывать глобальные функции и получать доступ к произвольным системным ресурсам, что обеспечивает в Java уровень безопасности, недоступный для других языков.

Забавно наблюдать, как многочисленные новые диалекты старых языков безапелляционно объявляются объектно-ориентированными. Поскольку при разработке языка отсутствовала тяжелая наследственность, для реализации объектов был избран удобный прагматичный подход. Разработчики Java старались выдержать разумный компромисс между моделью пуристов — “все является объектами”, и моделью хакеров — “уйди с моей дороги”. Объектная модель в Java проста и легко расширяется, в то же время, ради повышения производительности, числа и другие простые типы данных Java не являются объектами.

Java ограничивает вас в нескольких ключевых областях и таким образом способствует обнаружению ошибок на ранних стадиях разработки программы. В то же время в ней отсутствуют многие источники ошибок, свойственных другим языкам программирования (строгая типизация, например). Большинство используемых сегодня программ “отказывают” в одной из двух ситуаций: при выделении памяти, либо при возникновении исключительных ситуаций. В традиционных средах программирования распределение памяти является довольно нудным занятием — программисту приходится самому следить за всей используемой в программе памятью, не забывая освобождать ее по мере того, как потребность в ней отпадает. Зачастую программисты забывают освобождать захваченную ими память или, что еще хуже, освобождают ту память, которая все еще используется какой-либо частью программы. Исключительные ситуации в традиционных средах программирования часто возникают в таких, например, случаях, как деление на нуль или попытка открыть несуществующий файл, и их приходится обрабатывать с помощью неуклюжих и нечитабельных конструкций (кроме Delphi). Java фактически снимает обе эти проблемы, используя сборщик мусора для освобождения незанятой памяти и встроенные объектно-ориентированные средства для обработки исключительных ситуаций.

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

Независимость от архитектуры ЭВМ

Вопрос о долговечности и переносимости кода важнее религиозных войн между ПК и Макинтошами. Создатели Java наложили на язык и на среду времени выполнения несколько жестких требований, которые на деле, а не на словах позволяют, однажды написав, всегда запускать программу в любом месте и в любое время (где существует виртуальная Java-машина – броузеры на всех платформах, OS/2, Netware).

Интерпретация плюс высокая производительность

Необычайная способность Java исполнять свой код на любой из поддерживаемых платформ достигается тем, что ее программы транслируются в некое промежуточное представление, называемое байт-кодом (bytecode). Байт-код, в свою очередь, может интерпретироваться в любой системе, в которой есть среда времени выполнения Java. Большинство ранних систем, в которых пытались обеспечить независимость от платформы, обладало огромным недостатком — потерей производительности (Basic, Perl). Несмотря на то, что в Java используется интерпретатор, байт-код легко переводится непосредственно в “родные” машинные коды (Just In Time compilers) “на лету”. При этом достигается очень высокая производительность (Symantec JIT встроен в Netscape Navigator).

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


Богатая объектная среда

Среда Java — это нечто гораздо большее, чем просто язык программирования. В нее встроен набор ключевых классов, содержащих основные абстракции реального мира, с которым придется иметь дело вашим программам. Основой популярности Java являются встроенные классы-абстракции, сделавшие его языком, действительно независимым от платформы. Библиотеки, подобные MFC/COM, OWL, VCL, NeXTStep, Motif и OpenDoc прекрасно работают на своих платформах, однако сегодня главной платформой становится Internet.

В реализации Java 1.1.6 находится 23 пакета (в Java 1.0.2 их было 8), а количество классов – 503 (211). Сейчас проходит завершающую стадию бета-тестирования JDK 1.2. Для тех, кто собирается поддерживать Java 1.0 наряду с 1.1 (актуальность этой поддержки подтверждает Borland JBuilder 2.0 и другие продукты), специально выделены новшества 1.1 в Приложение 2.

Восемь интересных фактов о Java

Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно транслируются в специальный байт-код, который выполняет виртуальная машина Java (Java Virtual Machine, JVM). В свою очередь, JVM может быть установлена буквально на любое устройство, что обеспечивает кроссплатформенность Java-программ. Дата официального выпуска языка — 23 мая 1995 года.

В настоящее время примерно 3 миллиарда мобильных телефонов работают на Java, а также 125 000 000 телевизоров и каждый Blu-Ray проигрыватель. Этот язык постоянно занимает первые места в рейтингах разработчиков программного обеспечения как самый лучший выбор среди языков программирования. Помимо этого, у Java огромное количество поклонников, живущих по принципу WORA (Write once, run anywhere), что переводится как «написал один раз, запускай везде».

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

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

  • написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
  • это одна из статей из нашего «Самоучителя по Java»

Ниже приводим краткую историю создания языка программирования Java в вопросах и ответах.

Кто разработал язык Java?

Инженеры компании Sun Microsystems:

  • Патрик Ноутон (Patrick Naughton) — руководитель группы инженеров
  • Джеймс Гослинг (James Gosling) — член Совета директоров и, как его еще иногда называют, разносторонний «компьютерный волшебник»
Почему решили создать?

Патрик Ноутон, Джеймс Гослинг работали над проектом «Green», целью которого было разработать язык для программирования бытовых электронных устройств. Каких ещё бытовых устройств? Да самых разных. Например, контроллеров для переключения каналов кабельного телевидения (cable TV switchboxes).

  • мало потребляют энергии (отсюда и кодовое название проекта — «Green» )
  • а также бытовые электронные устройства имеют небольшие микросхемы памяти, а, соответственно, и программы, написанные под них, должны были быть небольшими. Помимо этого стояла задача, чтобы единожды написанный код читался на любой машине, а не писался под каждое устройство отдельно. Язык программирования C++ для данных целей их не очень устроил и они разработали новый язык программирования — Java.
А почему такое название – Java?

Стоит упомянуть, что не всегда этот язык имел привычное нам название — Java.

Изначально новому языку программирования было дано имя Oak (от англ.«Дуб»). Всё дело в том, что под окном офиса Джеймса Гослинга рос дуб, который ему очень нравился и в честь которого он и решил назвать новый язык.

Когда же компания Sun Microsystems увидела, что язык хорошо себя зарекомендовал и его можно сделать общедоступным, было принято решение поменять название Oak, поскольку это название уже имел другой язык программирования, а также необходимо было более созвучное, одним словом более коммерческое имя. И было дано новое имя языку — Java.

Так а почему всё-таки Java?

Существует 3 основные версии почему так назвали язык:

Версия № 1: Самая интересная. Программисты пьют много кофе. Пока создавался новый язык программирования, были выпиты гигалитры кофе, и поэтому решили назвать язык в честь сорта кофе Java.

Версия № 2: Название дано в честь марки кофе Java, который был назван в честь острова Ява (на англ. – Java). Эта версия перекликается с версией № 1.

Версия № 3: Поскольку новый язык разрабатывался для программирования бытовых электронных устройств, то иногда связывают это с аллюзией на кофе-машину как пример бытового устройства.

Год создания Java?

1991 — под названием Oak

23 мая 1995 год — дата официального выпуска под названием Java

А кто владелец Java сейчас?

В 2009 году язык Java сменил своего владельца – компания Sun Microsystems была куплена компанией Oracle. Так что сейчас владелец Java — компания Oracle.

Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Обучаем с нуля.

По всем вопросам звоните:

+38 050 205 77 99

+38 098 205 77 99

Или читайте информацию по нашим курсам Java c нуля у нас на сайте.

Вообще опасно объявлять каждую новую технологию программирования революционной. Если вы поторопитесь подать свой голос за признание технологии, подобной той

Название Вообще опасно объявлять каждую новую технологию программирования революционной. Если вы поторопитесь подать свой голос за признание технологии, подобной той
Дата 22.12.2012
Размер 220.84 Kb.
Тип Документы

Революция по имени Java

Вообще опасно объявлять каждую новую технологию программирования революционной. Если вы поторопитесь подать свой голос за признание технологии, подобной той, которая реализована в языке Java, революционной — вас могут закидать тухлыми яйцами или занести в разряд пустозвонов, падких на модные новинки. Что же в таком случае делает тот или иной продукт революционным ? Он не может быть только лишь компактней, быстрее и дешевле. Такой продукт должен изменить весь стиль работы, радикально упростив решение сложных проблем.


Создание языка Java — это действительно один из самых значительных шагов вперед в области разработки сред программирования за последние 20 лет. Язык HTML (Hypertext Markup Language — язык разметки гипертекста) был необходим для статического размещения страниц во “Всемирной паутине” WWW (World Wide Web). Язык Java потребовался для качественного скачка в создании интерактивных продуктов для сети Internet.

Три ключевых элемента объединились в технологии языка Java и сделали ее в корне отличной от всего, существующего на сегодняшний день.

  • Java предоставляет для широкого использования свои апплеты (applets) — небольшие, надежные, динамичные, не зависящие от платформы активные сетевые приложения, встраиваемые в страницы Web. Апплеты Java могут настраиваться и распространяться потребителям с такой же легкостью, как любые документы HTML.
  • Java высвобождает мощь объектно-ориентированной разработки приложений, сочетая простой и знакомый синтаксис с надежной и удобной в работе средой разработки. Это позволяет широкому кругу программистов быстро создавать новые программы и новые апплеты.
  • Java предоставляет программисту богатый набор классов объектов для ясного абстрагирования многих системных функций, используемых при работе с окнами, сетью и для ввода-вывода. Ключевая черта этих классов заключается в том, что они обеспечивают создание независимых от используемой платформы абстракций для широкого спектра системных интерфейсов.

Однако, не только своими преимуществами в создании динамических Интернет- приложений Java снискал популярность. Очень важное качество этой платформы – возможность создания сложных приложений практически для любых сфер деятельности на основе объектно-ориентированного подхода.

С
оздавая программы на большинстве языков программирования
, приходится задавать себе вопрос: в какой операционной системе и на каком процессоре будет работать данная программа? Только ответив на него, можно включать в свою программу вызов некоторой функции из библиотеки, предназначенной для соответствующей операционной системы. Например, если вы разрабатываете приложение для Windows, можете воспользоваться библиотекой Microsoft Foundation Classes; если ваша программа предназначена для работы на платформе Macintosh — функциями из Мас OS Toolbox. Этот процесс показан на рис. 1.1.

Исходный код подготовленного текста программы необходимо пропустить через компилятор; он преобразует исходный код в набор инструкций для конкретного процессора, под управлением которого предполагается запускать программу. Система Windows обычно работает на базе одного из процессоров, выпускаемых фирмой Intel, например Pentium ММХ или Pentium III, а в компьютерах Macintosh используются процессоры семейства Motorola 680хО или PowerPC.

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

Точно так же вы можете не задаваться вопросом, на базе какого процессора будет работать создаваемый вами конечный продукт: Pentium от фирмы Intel, PowerPC от IBM или SPARC от компании Sun. Причина в том, что компилятор Java не генерирует непосредственно инструкции процессору. Он создает промежуточный код, или байт-код (bytecodes), для некой абстрактной виртуальной машины Java (Java Virtual Machine — JVM).

Компилятор Java генерирует файлы, содержащие промежуточный код, или байт-код. Этот код представляет собой инструкции ДЛЯ виртуальной машины Java. Поскольку ядро виртуальной машины Java реализовано практически ДЛЯ любого типа компьютеров, то файлы байт-кодов можно рассматривать как независимые от платформы приложения.

Вы можете задать резонный вопрос: если виртуальной машины Java физически не существует, то как же работают Jаvа-программы? Компания Sun совместно с рядом независимых разработчиков создала программную версию JVM для большинства известных платформ. Когда на компьютер загружается файл, содержащий байт-коды (так называемый файл класса – class file), он интерпретируется виртуальной машиной Java на данном компьютере, которая считывает файл класса и выполняет команды, написанные на языке Java. На рис. 1.2 показано, как взаимодействуют между собой компилятор Java, файл класса и JVM.

П оскольку ядро виртуальной машины Java легко переносится с одного типа компьютера на другой, можно ожидать, что для каждого нового типа процессора и для каждой новой операционной системы вскоре появится своя реализация JVM. Поэтому Jаvа-программа сможет работать на любой известной компьютерной платформе, для которой существует реализация JVМ.

ЧТО такое среда выполнения Java

JVM является частью более обширного набора программ, работающего на компьютере конечного пользователя, так называемой среды выполнения Java (Java Runtime Environment — JRE). JRE включена в состав популярных броузеров Internet, таких как Microsoft Internet Explorer и Netscape Navigator. Если вы хотите, чтобы конечный пользователь мог запустить ваше Jаvа-nриложение, необходимо убедиться, что у него имеется JRE. Разработчики Java-пpoгрaмм получают JRE в составе Java Development Kit, а конечные пользователи могут загрузить ее отдельно.

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

Рождению языка 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 (дуб), в честь дерева, росшего под окном Гослинга.

Вскоре компания Sun Microsystems преобразовала команду Green в компанию First Person. Новая компания обладала интереснейшей концепцией, но не могла найти ей подходящего применения. После ряда неудач неожиданно ситуация для компании резко изменилась: был анонсирован броузер Mosaic — так родился World Wide Web, с которого началось бурное развитие Internet. Нотон предложил использовать Oak в создании Internet-приложений. Так Oak стал самостоятельным продуктом, вскоре был написан Oak-компилятор и Oak-браузер «WebRunner». В 1995 году компания Sun Microsystems приняла решение объявить о новом продукте, переименовав его в Java (единственное разумное объяснение названию — любовь программистов к кофе). Когда Java оказалась в руках Internet, стало необходимым запускать Java-аплеты — небольшие программы, загружаемые через Internet. WebRunner был переименован в HotJava и компания Netscape встала на поддержку Java-продуктов.

Даже если бы единственным достоинством Java была возможность создания машинно-независимых приложений, то и этого было бы вполне достаточно, чтобы завоевать расположение широкого круга программистов. Однако в 1993 году компания Sun обратила внимание на рост популярности Internet и начала дорабатывать Java таким образом, чтобы написанные на языке Java программы можно было запускать из Wеb-броузеров. Тогда самостоятельные Jаvа-программы стали называться Приложениями (applications) , а программы, работающие под управлением других программ (обычно Wеb-броузеров), — Аплетами (applets).

В большинстве языков программирования «конечным продуктом» является выполняемый файл, содержащий двоичные инструкции. В DOS и Windows эти файлы имеют расширение .ехе. В графических операционных системах, таких как Мас OS или Windows, для запуска программы достаточно дважды щелкнуть на ее пиктограмме.

Программы на языке Java имеют несколько другую природу. Поскольку файлы классов содержат байт-коды, предназначенные для обработки виртуальной машиной Java, то для запуска приложения необходимо сначала загрузить реализацию самой JVM. В состав Java SDK включен интерпретатор языка Java- модуль java, в котором реализованы функции JVM. Чтобы запустить приложение myApp с помощью JVM, нужно перейти в режим командной строки и ввести

Запуск Java-программы конечным пользователем

Если вы хотите передать приложение конечным пользователям, нет необходимости заставлять их работать с командной строкой. Напишите командный файл (batch file), запускающий интерпретатор Java и выполняющий ваше приложение. Тогда конечному пользователю для запуска вашего приложения, как и для запуска любой другой программы будет достаточно щелкнуть на пиктограмме командного файла.

Для чего предназначены аплеты

Современные Wеb-броузеры, такие как Netscape Navigator и Microsoft Intemet Explorer, являются достаточно мощными программами с богатым арсеналом возможностей. Кому же может понадобиться расширять возможности броузеров за счет использования каких-то аплетов?

Многие Wеb-дизайнеры не желают ограничивать свои творения рамками статичных изображений. Они хотят создавать «живые» страницы, способные взаимодействовать с пользователем. Чаще всего для реализации описанных возможностей лучше всего написать специальную программу. Однако язык НТМL (HyperText Markup Language), предназначенный для создания Wеb-страниц, вообще не обладает возможностями программирования. Как же быть?

Броузеры Netscape Navlgator и Microsoft Intemet Explorer поддерживают языки сценариев, таких как JavaScript. Эти языки позволяют расширить функциональные возможности стандартных элементов управления, реализованных в HTML, например кнопок или текстовых полей. Однако при этом вы не можете изменить их внешний вид и интерфейс пользователя. Эти языки сценариев нельзя также использовать для обеспечения обратной связи от клиента, поэтому они непригодны для создания приложений типа клиент/сервер. Иногда мощности языков сценариев явно недостаточно или требуется решение, которое не должно зависеть от конкретного броузера. В этих случаях идеально подойдут аплеты Java.

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

Именно броские Web-страницы с анимацией привлекли большинство ранних приверженцев языка Java. Поскольку пользователи не сразу смогли полностью освоить наиболее революционные аспекты Java, этот язык часто сравнивался с другими технологиями для загрузки динамических изображений и простого взаимодействия с Web-клиентами. Компании, традиционно занимающиеся разработкой мультимедиа-технологий, например, Adobe или MacroMedia, утверждали, что их продукты предоставляют те же возможности, что и Java. По мнению Kaleida, Taligent и NeXT, их собственные объектно-ориентированные среды разработки были не менее революционны. Microsoft заявлял о победе технологии десятилетней давности. На самом деле ничто не может сравниться с тем, что вы откроете для себя, ощутив мощь программирования на языке Java.

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

Чем java отличается от других языков

Jаvа представляет собой современный объектно-ориентированный язык программирования, поддерживающий технологию клиент/сервер.

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

В преддверии нового тысячелетия мир программного обеспечения во многом напоминает картину конца 70-х. В те времена персональные компьютеры только появились и процесс разработки программного обеспечения значительно отставал от необходимого уровня. Однако практически все модели персональных компьютеров поставлялись с интерпретатором языка BASIC. Тысячи людей, не причисляющих себя к профессиональным программистам, изучали BASIC и начинали писать программы. Зачастую они распространяли свои программы на гибких дисках, а позднее через электронную доску объявлений, и это послужило толчком к зарождению рынка условно-бесплатного программного обеспечения.

Подобно SmallTalk, С и С++ (и в отличие от BASIC), Java предназначен для профессиональных программистов. А HTML и языки сценариев сегодня занимают то место, которое в былые времена занимал BASIC. Многие непрофессиональные программисты не умеют писать Jаvа-аплеты, но могут использовать аплеты, написанные другими, чтобы «вдохнуть жизнь» в свои Wеb-страницы. Зачастую для интеграции Wеb-страниц, Jаvа-аплетов и дополнительных модулей (надстроек) броузеров они используют технологию Netscape LiveConnect, основанную на JavaScript.

Основные преимущественные особенности Java:

— поддержка технологии клиент/сервер.

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

Введена концепция потоков (thread), как облегченного варианта концепции процессов (process), причем потоки стали частью самого языка и объектно-ориентированная модель Java ограничивает способы взаимодействия между приложениями, тем самым потоки обладают специальными средствами защиты, присущими процессам.

-жесткая модель защиты.

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

Защита в Java осуществляется:

— на уровне языка;


— с помощью интерфейса JavaSecurity.

Революционный язык программирования

Язык должен был воплощать следующие качества: простоту и мощь, безопасность, объектную ориентированность, надежность, интерактивность, архитектурную независимость, возможность интерпретации, высокую производительность и легкость в изучении. Даже если вы никогда не напишете ни одной строки на языке Java, знать о его возможностях весьма полезно, поскольку именно перечисленные выше свойства языка придают динамику страницам Всемирной паутины.

Простота и мощь

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

В популярной литературе наших дней, особенно если речь заходит об Internet, стало модной темой обсуждение вопросов безопасности. Люди уверены, что использование Internet в коммерческой деятельности равносильно написанию номера своей кредитной карточки на стенке телефонной будки. Один из ключевых принципов разработки языка Java заключался в обеспечении защиты от несанкционированного доступа. Программы на Java не могут вызывать глобальные функции и получать доступ к произвольным системным ресурсам, что обеспечивает в Java уровень безопасности, недоступный для других языков.

Забавно наблюдать, как многочисленные новые диалекты старых языков безапелляционно объявляются объектно-ориентированными. Поскольку при разработке языка отсутствовала тяжелая наследственность, для реализации объектов был избран удобный прагматичный подход. Разработчики Java старались выдержать разумный компромисс между моделью пуристов — “все является объектами”, и моделью хакеров — “уйди с моей дороги”. Объектная модель в Java проста и легко расширяется, в то же время, ради повышения производительности, числа и другие простые типы данных Java не являются объектами.

Java ограничивает вас в нескольких ключевых областях и таким образом способствует обнаружению ошибок на ранних стадиях разработки программы. В то же время в ней отсутствуют многие источники ошибок, свойственных другим языкам программирования (строгая типизация, например). Большинство используемых сегодня программ “отказывают” в одной из двух ситуаций: при выделении памяти, либо при возникновении исключительных ситуаций. В традиционных средах программирования распределение памяти является довольно нудным занятием — программисту приходится самому следить за всей используемой в программе памятью, не забывая освобождать ее по мере того, как потребность в ней отпадает. Зачастую программисты забывают освобождать захваченную ими память или, что еще хуже, освобождают ту память, которая все еще используется какой-либо частью программы. Исключительные ситуации в традиционных средах программирования часто возникают в таких, например, случаях, как деление на нуль или попытка открыть несуществующий файл, и их приходится обрабатывать с помощью неуклюжих и нечитабельных конструкций (кроме Delphi). Java фактически снимает обе эти проблемы, используя сборщик мусора для освобождения незанятой памяти и встроенные объектно-ориентированные средства для обработки исключительных ситуаций.

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

Независимость от архитектуры ЭВМ

Вопрос о долговечности и переносимости кода важнее религиозных войн между ПК и Макинтошами. Создатели Java наложили на язык и на среду времени выполнения несколько жестких требований, которые на деле, а не на словах позволяют, однажды написав, всегда запускать программу в любом месте и в любое время (где существует виртуальная Java-машина – броузеры на всех платформах, OS/2, Netware).

Интерпретация плюс высокая производительность

Необычайная способность Java исполнять свой код на любой из поддерживаемых платформ достигается тем, что ее программы транслируются в некое промежуточное представление, называемое байт-кодом (bytecode). Байт-код, в свою очередь, может интерпретироваться в любой системе, в которой есть среда времени выполнения Java. Большинство ранних систем, в которых пытались обеспечить независимость от платформы, обладало огромным недостатком — потерей производительности (Basic, Perl). Несмотря на то, что в Java используется интерпретатор, байт-код легко переводится непосредственно в “родные” машинные коды (Just In Time compilers) “на лету”. При этом достигается очень высокая производительность (Symantec JIT встроен в Netscape Navigator).

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

Богатая объектная среда

Среда Java — это нечто гораздо большее, чем просто язык программирования. В нее встроен набор ключевых классов, содержащих основные абстракции реального мира, с которым придется иметь дело вашим программам. Основой популярности Java являются встроенные классы-абстракции, сделавшие его языком, действительно независимым от платформы. Библиотеки, подобные MFC/COM, OWL, VCL, NeXTStep, Motif и OpenDoc прекрасно работают на своих платформах, однако сегодня главной платформой становится Internet.

В реализации Java 1.1.6 находится 23 пакета (в Java 1.0.2 их было 8), а количество классов – 503 (211). Сейчас проходит завершающую стадию бета-тестирования JDK 1.2. Для тех, кто собирается поддерживать Java 1.0 наряду с 1.1 (актуальность этой поддержки подтверждает Borland JBuilder 2.0 и другие продукты), специально выделены новшества 1.1 в Приложение 2.

Пакеты Java API

Имя пакета Содержимое
java.applet Классы для реализации апплетов
java.awt Классы для работы с графикой, текстом, окнами и GUI
java.awt.datatransfer Классы для обеспечения передачи информации (Copy/Paste)
java.awt.event Классы и интерфейсы для обработки событий
java.awt.image Классы для обработки изображений
java.awt.peer GUI для обеспечения независимости от платформы
java.beans API для модели компонентов JavaBeans
java.io Классы для различных типов ввода-вывода
java.lang Классы ядра языка (типы, работа со строками, тригонометрические функции, обработка исключений, легковесные процессы)
java.lang.reflect Классы Reflection API
java.math Классы для арифметических операций произвольной точности
java.net Классы для работы в сети Интернет (сокеты, протоколы, URL)
java.rmi Классы, связанные с RMI (удаленный вызов процедур)
java.rmi.dgc Классы, связанные с RMI
java.rmi.registry Классы, связанные с RMI
java.rmi.server Классы, связанные с RMI
java.security Классы для обеспечения безопасности
java.security.acl Классы для обеспечения безопасности
java.security.interfaces Классы для обеспечения безопасности
java.sql
java.text Классы для обеспечения многоязыковой поддержки
java.text.resources Классы для обеспечения многоязыковой поддержки
java.util Разноообразные полезные типы данных (стеки, сдовари, хэш-таблицы, даты, генератор случайных чисел)
java.util.zip Классы для обеспечения архивации

Часть этих пакетов мы будем рассматривать очень подробно (это видно из оглавления), другая пойдет на самостоятельную проработку.

Java как объектно-ориентированный язык

В целом процесс разработки программного обеспечения включает пять этапов.

  • Анализ — определение требований пользователя.
  • Разработка — процесс выработки решения, удовлетворяющего требованиям пользователя..
  • Реализация — запись разработанной модели на языке программирования, например Java.
  • Тестирование — процесс проверки, удовлетворяет ли разработанная программа предъявляемым требованиям.
  • Сопровождение — устранение выявленных дефектов, добавление новых свойств; поддержание работоспособности программы при изменении внешней среды (например, операционной системы или СУБД).

На этапе выполнения объектно-ориентированного анализа делается попытка представить приложение в виде набора взаимосвязанных классов. Например, в приложение, моделирующее транспортные перевозки, логично включить класс Автомобиль. В процессе работы приложения, как правило, создаются экземпляры (instance) этих классов. В результате на основе одного класса Автомобиль вы сможете создать целую колонну автомашин.

На этапе объектно-ориентированной разработки определяются все необходимые классы и располагаются в порядке иерархии. На рис. 1.3 показано вероятное место класса Автомобиль в иерархии классов системы моделирования транспортных перевозок. На этом же этапе разработки приложения определяются методы и данные, которые будут связаны с каждым экземпляром класса. На рис. 1.4 показан один из способов представления этой информации на этапе разработки.

О пределив и описав каждый класс, необходимо разработать код для каждого метода. Некоторые разработчики предпочитают составлять простые диаграммы, демонстрирующие работу каждого метода. Другие пользуются псевдокодом (pseudocode) — неким универсальным кодом, предназначенным для прочтения человеком, а не компьютером.

Первые объектно-ориентированные языки появились еще в 1967 году. В 1983 году Бьярн Страуструп, (Bjane Stroustrup ) из АТ&Т Lаbоrаtоriеs разработал версию популярного языка программирования С, которая поддерживала классы. Этот «С с классами» превратился в С++ — наиболее популярный объектно-ориентированный, а возможно, и самый популярный язык программирования вообще.

При разработке Java специалисты Sun взяли за основу лучшие принципы и синтаксис язык C++, в том числе те, что позволяют легко превращать объектно-ориентированную модель в программу.

Введение в язык Java – Первая программа

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

Прежде всего, в этой главе мы напишем, оттранслируем, и запустим каноническую программу “Hello World”. После этого мы рассмотрим все существенные лексические элементы, воспринимаемые Java-транслятором: пробелы, комментарии, ключевые слова, идентификаторы, литералы, операторы и разделители. К концу главы вы получите достаточно информации для того чтобы самостоятельно ориентироваться в хорошей Java-программе.

Итак, вот ваша первая Java-программа:

public static void main (String args []) <

System. out. println («Hello World»);

Для того, чтобы поработать с приведенными в книге примерами вам нужно получить по сети из Sun Microsystems и установить Java Developers Kit — пакет для разработки Java-приложений (http://java.sun.com/products/jdk). Полное описание утилит пакета JDK – в Приложении 1.

Язык Java требует, чтобы весь программный код был заключен внутри поименованных классов. Приведенный выше текст примера надо записать в файл HelloWorld.java. Обязательно проверьте соответствие прописных букв в имени файла тому же в названии содержащегося в нем класса. Для того, чтобы оттранслировать этот пример необходимо запустить транслятор Java — javac, указав в качестве параметра имя файла с исходным текстом:

С: \> javac HelloWorld.Java

Транслятор создаст файл HelloWorld.class с независимым от процессора байт-кодом нашего примера. Для того, чтобы исполнить полученный код, необходимо иметь среду времени выполнения языка Java (в нашем случае это программа java), в которую надо загрузить новый класс для исполнения. Подчеркнем, что указывается имя класса, а не имя файла, в котором этот класс содержится.

Полезного сделано мало, однако мы убедились, что установленный Java-транслятор и среда времени выполнения работают.

Конечно, HelloWorld — это тривиальный пример. Однако даже такая простая программа новичку в языке Java может показаться пугающе сложной, поскольку она знакомит вас с массой новых понятий и деталей синтаксиса языка Давайте внимательно пройдемся по каждой строке нашего первого примера, анализируя те элементы, из которых состоит Java-программа.

В этой строке использовано зарезервированное слово class. Оно говорит транслятору, что мы собираемся описать новый класс. Полное описание класса располагается между открывающей фигурной скобкой в первой строке и парной ей закрывающей фигурной скобкой в строке 5. Фигурные скобки в Java используются точно так же, как в языках С и С++.

public static void main (String args []) <


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

Разбивая эту строку на отдельные лексемы, мы сразу сталкиваемся с ключевым словом public. Это — модификатор доступа, который позволяет программисту управлять видимостью любого метода и любой переменной. В данном случае модификатор доступа public означает, что метод main виден и доступен любому классу. Существуют еще 2 указателя уровня доступа — private и protected, с которыми мы более детально познакомимся в главе 8.

Следующее ключевое слово — static. С помощью этого слова объявляются методы и переменные класса, используемые для работы с классом в целом. Методы, в объявлении которых использовано ключевое слово static, могут непосредственно работать только с локальными и статическими переменными.

У вас нередко будет возникать потребность в методах, которые возвращают значение того или иного типа: например, int для целых значений, float — для вещественных или имя класса для типов данных, определенных программистом. В нашем случае нужно просто вывести на экран строку, а возвращать значение из метода main не требуется. Именно поэтому и был использован модификатор void. Более детально этот вопрос обсуждается в главе 4.

Наконец, мы добрались до имени метода main. Здесь нет ничего необычного, просто все существующие реализации Java-интерпретаторов, получив команду интерпретировать класс, начинают свою работу с вызова метода main. Java-транслятор может оттранслировать класс, в котором нет метода main. А вот Java-интерпретатор запускать классы без метода main не умеет.

Все параметры, которые нужно передать методу, указываются внутри пары круглых скобок в виде списка элементов, разделенных символами «;» (точка с запятой). Каждый элемент списка параметров состоит из разделенных пробелом типа и идентификатора. Даже если у метода нет параметров, после его имени все равно нужно поставить пару круглых скобок. В примере, который мы сейчас обсуждаем, у метода main только один параметр, правда довольно сложного типа.

Элемент String args[] объявляет параметр с именем args, который является массивом объектов — представителей класса String. Обратите внимание на квадратные скобки, стоящие после идентификатора args. Они говорят о том, что мы имеем дело с массивом, а не с одиночным элементом указанного типа. Мы вернемся к обсуждению массивов в следующей главе, а пока отметим, что тип String — это класс. Более детально о строках мы поговорим в главе 9.

System. out. prlntln(«Hello World!»);

В этой строке выполняется метод println объекта out. Объект out объявлен в классе OutputStream и статически инициализируется в классе System. В главах 9 и 13 у вас будет шанс познакомиться с нюансами работы классов String и OutputStream.

Закрывающей фигурной скобкой в строке 4 заканчивается объявление метода main, а такая же скобка в строке 5 завершает объявление класса HelloWorld.

Язык программирования Java: с чего начать изучение. Где применяется Java

Java — ЯП от компании Sun microsystems. Изначально разрабатывался как язык для программирования электронных устройств, но позже стал использоваться для написания приложений серверного ПО. Программы на Java — кроссплатформенные, то есть способны работать на любых операционных системах.

Основы программирования на языке Java

Java как язык с поддержкой объектного ориентирования отвечает основным принципам ООП:

В центре «Джава», как и в других ООЯ, — объект и класс с конструкторами и свойствами. Начинать обучение языку программирования Java лучше не с официальных ресурсов, а с пособий для новичков. В таких манулах подробно описываются возможности, предоставляются примеры кода. В книгах наподобие «Язык программирования Java для начинающих” подробно разъясняются основные принципы и особенности названного языка.

Особенности

Код на языке программирования Java транслируется в байт-код, затем выполняется на виртуальной машине JVM. Преобразование в байт-код осуществляется на Javac, Jikes, Espresso, GCJ. Существуют такие компиляторы, которые транслируют язык «Си» в Java байт-код. Таким образом, приложение на «Си» может работать на любых платформах.

Синтаксис «Джава» характеризуется следующим:

  1. Имена классов должны начинаться с большой буквы. Если название состоит из нескольких слов, то второе должно начинаться с верхнего регистра.
  2. Если для формирования метода используется несколько слов, то второе из них должно начинаться с большой буквы.
  3. Обработка начинается с метода main() — он является частью каждой программы.

Язык программирования Java имеет 8 примитивных типов. Они представлены ниже.

  • Boolean — логический тип, принимает всего два значения true и false.
  • Byte — наименьший целочисленный тип размером 1 байт. Он используются при работе с потоком данных или файлов, необработанными двоичными данными. Имеет диапазон от -128 до 127.
  • Short имеет диапазон от -32768 до 32767, используется для представления чисел. Размер переменных этого типа — 2 байта.
  • Int тоже обозначает числа, но его размер — 4 байта. Он чаще остальных используется для работы с целочисленными данными, а byte и short иногда повышаются до int.
  • Long используются для больших целых чисел. Возможные значения находятся в диапазоне от -9223372036854775808 до 9223372036854775807.
  • Float и double применяются для обозначения дробных. Их разница в том, что float удобен, когда не требуется высокая точность в дробной части числа.
  • Double выводит на экран все знаки после разделителя «.», а float — только первые.
  • String наиболее используемый примитивный тип, с помощью которого задаются строки.

Классы и объекты

Важную роль в книге «Изучение языка программирования Java для начинающих» занимают классы и объекты.

Класс определяет шаблон для объекта, у него обязательно есть атрибуты и методы. Для его создания применяют ключевое слово Class. Если он создается в отдельном файле, то имя класса и файла должны быть одинаковыми. Само же название состоит из двух частей: имени и расширения .Java.

В «Джава» можно создавать подкласс, который будет наследовать методы родительского. Для этого используется слово extends:

  • class имя_класса extends имя_суперкласса <>;

Конструктор является составляющим любого класса, даже если это не задано явно. В таком случае компилятор его создает самостоятельно:

  • public class Class < public Class()< >public Class(String name)< >>

Имя конструктора совпадает с именем класса, по умолчанию у него есть всего один параметр:

Object создается из класса с помощью оператора new():


Он получает все методы и свойства класса, с помощью которых взаимодействует с другими объектами. Один объект можно использовать несколько раз под разными переменными.

Point р = new Point()

public static void main(String args[]) <

Point p1 = new Point();

Point p2 = new Point();

Объектные переменные и объекты — совершенно разные сущности. Object variables являются ссылками. Они могут указывать на любые переменные непримитивного типа. В отличие от C++ их типовое преобразование жестко регламентировано.

Поля и методы

Поля — это все переменные, связанные с классом или объектом. По умолчанию они являются локальными и не могут использовать в других классах. Для доступа к полям используется оператор «.»:

Можно задать статические поля с помощью ключевого слова static. Такие поля являются единственным способом хранить глобальные переменные. Это связано с тем, что в «Джава» попросту нет global variables.

Реализована возможность импорта переменных для получения доступа из других пакетов:

Метод — подпрограмма для тех классов, в которых объявлена. Описывается на том же уровне, что и переменные. Задается в виде функции и может иметь любой тип, в том числе void:

void init(int a, int b) <

В примере выше класс Point имеет поля типа integer x и y, метод init(). Доступ к методам, как и к переменным, осуществляется путем использования оператора «.»:

Свойство init ничего не возвращает, поэтому имеет тип void.

Переменные

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

Одновременно может быть объявлено несколько переменных. Для их перечисления используется запятая:

Инициализации осуществляется после или во время объявления:

int a = 10, b = 10;

Существует несколько типов:

  • local variables (локальные);
  • instance variables (переменные экземпляра);
  • static variables (статические).

Local variables объявляют в методах и конструкторах, они создаются во время запуска последних и уничтожаются после завершения. Для них запрещено указывать access modifiers и управлять уровнем доступности. Они не видимы за пределами объявленного блока. В Java переменные не имеют начального значения, поэтому оно в обязательном порядке присваивается перед первым использованием.

Instance variables должны быть объявлены внутри класса. Они используются как методы, но получить к ним доступ можно только после создания объекта. Переменная разрушается, когда уничтожается объект. У экземплярных переменных, в отличе от локальных, существуют значения по умолчанию:

Static variables называются переменными класса. Их имена начинаются с символа в верхнем регистре, конкретизируются модификатором static. Они используются как константы, соответственно, к ним прибавляется один спецификатор из списка:

Запускаются в начале программы, уничтожаются после остановки выполнения. Так же, как переменные экземпляра, имеют стандартные значения, которые присваиваются пустым переменным. У чисел — значение 0, булевые переменные имеют значение false, ссылки на объект изначально имеют null. Статические переменные вызываются в следующем виде:

Сборщик мусора

В самоучителе «Язык программирования Java для новичков» раздел автоматического сборщика мусора является наиболее интересным.

В Java, в отличие от языка «Си», невозможно ручное удаление объекта из памяти. Для этого реализован метод автоматического удаления — сборщик мусора. При традиционном удалении через null происходит лишь устранение ссылки на объект, а сам объект удаляется. Существуют методы принудительной сборки мусора, хотя они не рекомендованы для использования в обычной работе.

Модуль автоматического удаления неиспользуемых объектов работает в фоновом режиме, запускается при неактивности программы. Для очистки объектов из памяти программа останавливается, после освобождения памяти прерваная операция возобновляется.

Модификаторы

Различают разные типы модификаторов. Кроме тех, которые определяют способ доступа, существует модификаторы методов, переменных, класса. Методы, объявленные как private, доступны только в объявленном классе. Такие переменные не могут использоваться в других классах и функциях. Public открывает доступ для любого класса. Если нужно получить Public class из другого пакета, то его следует предварительно импортировать.

Модификатор protected похож по действую на public — открывает доступ к полям класса. В обоих случаях переменные могут использоваться в других классах. Но паблик-модификатор доступен абсолютно для всех, а протектед-модификатор — только для наследуемых классов.

Модификатор, который применяется при создании методов, — static. Это означает, что созданный метод существует независимо от экземпляров класса. Модификатор Final не управляет доступом, а указывает на невозможность дальнейшего манипулирования значениями объекта. Он запрещает изменение того элемента, для которого указан.

Final для полей делает невозможным изменение первого значения переменной:

public static void mthod(String[] args) <

final int Name = 1;

int Name = 2;// выдаст ошибку

Переменные с модификатором final являются константами. Их принято писать только заглавными буквами. CamelStyle и другие способы не работают.

Final для методов указывает запрет на изменение метода в наследуемом классе:

final void myMethod() <

Final для классов означает, что нельзя создать наследников класса:


final public class Class <

Abstract — модификатор создания абстрактных классов. Любой абстрактный класс и абстрактные методы предназначены для дальнейшего расширения в других классах и блоках. Модификатор transient указывает виртуальной машине не обрабатывать заданную переменную. В этом случае та просто не сохранится. Например, transient int Name = 100 не сохранится, а int b сохранится.

Платформы и версии

Существующие семейства языка программирования Java:

  • Standard Edition.
  • Enterprise Edition.
  • Micro Edition.
  • Card.
  1. SE — является основным, широко используется для создания пользовательских приложений для индивидуального использования.
  2. EE — набор спецификаций для разработки ПО уровня предприятия. Содержит больше возможностей, чем SE, поэтому используется в коммерческих масштабах на крупных и средних предприятиях.
  3. ME — предназначены для устройств с ограниченной мощностью и памятью, у них, как правило, малый размер дисплея. Такими устройствами являются смартфоны и КПК, ресиверы цифрового телевидения.
  4. Card — предназначена для устройств с крайне ограниченными вычислительными ресурсами, например таких, как смарт-карты, sim-карты, банкоматы. Для этих целей был изменен байт-код, требования к платформе, составляющее библиотек.

Применение

Программы на языке программирования Java, как правило, более медлительны и занимают больше оперативной памяти. Сравнительный анализ языков Java и «Си» показал, что «Си» немного продуктивней. После многочисленных изменений и оптимизации виртуальной машины Java улучшил свои показатели.

Активно используется для создания мобильных приложений под Android. Программа компилируется в нестандартный байт-код, выполняется на виртуальной машине ART. Для компиляции применяется Android Studio. Это IDE от компании «Гугл» является официальной для разработки под ОС Android.

Microsoft разработала собственную реализацию виртуальной машины Java MSJVM. Она имела такие отличия, которые ломали основополагающую концепцию кроссплатформенности — отсутствовала поддержка некоторых технологий и методов, имелись нестандартные расширения, работающие только на платформе Windows. Microsoft выпустил язык J#, синтаксис и работа в целом которого очень напоминает Java. Он не соответствовал официальной спецификации и в итоге был исключен из стандартного инструментария разработчика Microsoft Visual Studio.

Язык программирования Java и среда

Разработка программного обеспечения осуществляется в таких IDE:

  1. JDK.
  2. NetBeans IDE.
  3. Eclipse IDE.
  4. IntelliJ IDEA.
  5. JDeveloper.
  6. Java для iOS.
  7. Geany.

JDK распространяется компанией Oracle как комплект разработчика на языке Java. Включает компилятор, стандартные библиотеки, утилиты, исполнительную систему. Современные интегрированные среды разработки опираются именно JDK.

Удобно писать код на языке программирования Java в среде Netbeans и Eclipse IDE. Это свободные интегрированные среды для разработки, они подходят под все платформы «Джава». Также используются для программирования на Python, PHP, JavaScript, C++.

IntelliJ IDE от компании Jetbrains распространяется в двух вариантах: бесплатном и коммерческом. Поддерживает написание кода на многих языках программирования, существуют сторонние плагины от разработчиков, в которых реализовано еще большее количество ЯП.

JDeveloper — еще одна разработка от компании Oracle. Полностью написана на Java, поэтому работает на всех операционных системах.

Семь причин изучать Java

Мир стоит на пороге четвёртой промышленной революции. Индустрия 4.0. ознаменуется массовым внедрением искусственного интеллекта в нашу жизнь. Человеческий труд уступит место машинному: по прогнозам в ближайшие 20 лет более 40 % рабочих мест будет автоматизировано. Но появятся и новые специальности, связанные с обслуживанием работы машин. Наступает эра IT, где владение языками программирования — гарантия стабильности. Какой язык выбрать? Эксперты уверены: Java будет востребован ещё не одно десятилетие.

Семь перспективных направлений, в которых без Java не обойтись:

Хотите писать под Android? Учите Java.

2. Финансовые услуги

Мировые инвестиционные банки используют Java для обработки данных, написания серверных приложений, создания фронтэнда и бэкенда.

Так же поступают трейдеры. Например, на этом языке написано популярное приложение «Murex».

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

4. Программные средства

Такие приложения, как Eclipse, IntelliJ Idea, Netbeans IDE воплощены в жизнь благодаря Java.

5. Встраиваемые системы

Эта сфера — «родина» Java. Язык разрабатывался для встраиваемых систем под лозунгом: «пиши один раз, запускай где угодно». Люди стремятся упрощать жизнь, и Java делает это возможным. Сфера применения широка: от мобильных телефонов и бытовой техники до систем управления предприятиями. Директор по маркетингу компании Microtec уверен: Java только набирает обороты на рынке встраиваемых систем и вскоре получит широкое распространение.

6. Большие данные

Пока Java не доминирует в этой области, но у него есть все шансы вырваться вперёд. Это случится, если Hadoop или ElasticSearch расширятся.

В научных приложениях Java используется по умолчанию. Одно из направлений работы — обработка естественных языков: устной и письменной речи. Помните притчу о Вавилонской башне и возникновении разных языков, разобщивших народы? Программисты решили исправить ситуацию и создали синхронный переводчик.

Дальше — больше: идут работы над нейроинтерфейсами для «управления мыслями» и передачи ощущений на расстояние. Это возможно благодаря дополненной реальности. Чтобы попасть в неё, достаточно смартфона и специальных очков. Пока такое общение напоминает компьютерную игру, внутри которой вы находитесь. Но это только начало.

Для достижения целей потребуются разные языки программирования: кроме Java, эксперты делают ставку на R, Erlang, Go и Swift. Вероятно, появятся и новые языки, но они ещё долго будут играть вспомогательную роль. История Java началась ещё в 1990 году и всё это время язык совершенствовался. Сегодня Java — самый востребованный язык программирования в мире.

Писать на Java не только интересно, но и выгодно: в 2020 г. зарплата такого специалиста в Москве колеблется от 25 000 до 175 000 р. Ценно, что программирование позволяет зарабатывать во время обучения, поэтому «отбить» вложенные средства реально уже в первые месяцы. Как быстро вам удастся это сделать, зависит от выбранного метода обучения: важно не зацикливаться на теории, а сразу переходить к практике. Профессиональные курсы позволяют это сделать. Преподаватели уровня «senior» доступно объяснят материал и помогут влиться в новую среду. Кроме того, здесь вы найдете единомышленников и полезные контакты, что неоценимо в начале карьеры.


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

Программистом может стать любой, независимо от образования и предыдущего опыта работы. Вы тоже можете, стоит лишь захотеть. Программируйте своё будущее сами — учите Java.

Конспект лекций по курсу «Выбранные вопросы информатики» (стр. 1 )

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12

Министерство образования и науки Украины

Луганский национальный педагогический университет

Конспект лекций по курсу

Выбранные вопросы информатики

для специальности
Информатика

Лекция 1 Введение в язык Java

Революция по имени Java

Богатая объектная среда

Среда Java — это нечто гораздо большее, чем просто язык программирования. В нее встроен набор ключевых классов, содержащих основные абстракции реального мира, с которым придется иметь дело вашим программам. Основой популярности Java являются встроенные классы-абстракции, сделавшие его языком, действительно независимым от платформы. Библиотеки, подобные MFC/COM, OWL, VCL, NeXTStep, Motif и OpenDoc прекрасно работают на своих платформах, однако сегодня главной платформой становится Internet.

В реализации Java 1.1.6 находится 23 пакета (в Java 1.0.2 их было 8), а количество классов – Сейчас проходит завершающую стадию бета-тестирования JDK 1.2. Для тех, кто собирается поддерживать Java 1.0 наряду с 1.1 (актуальность этой поддержки подтверждает Borland JBuilder 2.0 и другие продукты), специально выделены новшества 1.1 в Приложение 2.

Пакеты Java API

Классы для реализации апплетов

Классы для работы с графикой, текстом, окнами и GUI

java. awt. datatransfer

Классы для обеспечения передачи информации (Copy/Paste)

Классы и интерфейсы для обработки событий

Классы для обработки изображений

GUI для обеспечения независимости от платформы

API для модели компонентов JavaBeans

Классы для различных типов ввода-вывода

Классы ядра языка (типы, работа со строками, тригонометрические функции, обработка исключений, легковесные процессы)

java. lang. reflect

Классы Reflection API

Классы для арифметических операций произвольной точности

Классы для работы в сети Интернет (сокеты, протоколы, URL)

Классы, связанные с RMI (удаленный вызов процедур)

Классы, связанные с RMI

java. rmi. registry

Классы, связанные с RMI

java. rmi. server

Классы, связанные с RMI

Классы для обеспечения безопасности

java. security. acl

Классы для обеспечения безопасности

java. security. interfaces

Классы для обеспечения безопасности

Классы для обеспечения многоязыковой поддержки

java. text. resources


Классы для обеспечения многоязыковой поддержки

Разноообразные полезные типы данных (стеки, сдовари, хэш-таблицы, даты, генератор случайных чисел)

Классы для обеспечения архивации

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

Прежде всего, в этой главе мы напишем, оттранслируем, и запустим каноническую программу “Hello World”. После этого мы рассмотрим все существенные лексические элементы, воспринимаемые Java-транслятором: пробелы, комментарии, ключевые слова, идентификаторы, литералы, операторы и разделители. К концу главы вы получите достаточно информации для того чтобы самостоятельно ориентироваться в хорошей Java-программе.

Итак, вот ваша первая Java-программа:

public static void main (String args []) <

System. out. println («Hello World»);

Для того, чтобы поработать с приведенными в книге примерами вам нужно получить по сети из Sun Microsystems и установить Java Developers Kit — пакет для разработки Java-приложений (http://java. /products/jdk). Полное описание утилит пакета JDK – в Приложении 1.

Язык Java требует, чтобы весь программный код был заключен внутри поименованных классов. Приведенный выше текст примера надо записать в файл HelloWorld. java. Обязательно проверьте соответствие прописных букв в имени файла тому же в названии содержащегося в нем класса. Для того, чтобы оттранслировать этот пример необходимо запустить транслятор Java — javac, указав в качестве параметра имя файла с исходным текстом:

Транслятор создаст файл HelloWorld. class с независимым от процессора байт-кодом нашего примера. Для того, чтобы исполнить полученный код, необходимо иметь среду времени выполнения языка Java (в нашем случае это программа java), в которую надо загрузить новый класс для исполнения. Подчеркнем, что указывается имя класса, а не имя файла, в котором этот класс содержится.

Полезного сделано мало, однако мы убедились, что установленный Java-транслятор и среда времени выполнения работают.

Конечно, HelloWorld — это тривиальный пример. Однако даже такая простая программа новичку в языке Java может показаться пугающе сложной, поскольку она знакомит вас с массой новых понятий и деталей синтаксиса языка Давайте внимательно пройдемся по каждой строке нашего первого примера, анализируя те элементы, из которых состоит Java-программа.

В этой строке использовано зарезервированное слово class. Оно говорит транслятору, что мы собираемся описать новый класс. Полное описание класса располагается между открывающей фигурной скобкой в первой строке и парной ей закрывающей фигурной скобкой в строке 5. Фигурные скобки в Java используются точно так же, как в языках С и С++.

public static void main (String args []) <

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

Разбивая эту строку на отдельные лексемы, мы сразу сталкиваемся с ключевым словом public. Это — модификатор доступа, который позволяет программисту управлять видимостью любого метода и любой переменной. В данном случае модификатор доступа public означает, что метод main виден и доступен любому классу. Существуют еще 2 указателя уровня доступа — private и protected, с которыми мы более детально познакомимся в главе 7.

Следующее ключевое слово — static. С помощью этого слова объявляются методы и переменные класса, используемые для работы с классом в целом. Методы, в объявлении которых использовано ключевое слово static, могут непосредственно работать только с локальными и статическими переменными.

У вас нередко будет возникать потребность в методах, которые возвращают значение того или иного типа: например, int для целых значений, float — для вещественных или имя класса для типов данных, определенных программистом. В нашем случае нужно просто вывести на экран строку, а возвращать значение из метода main не требуется. Именно поэтому и был использован модификатор void. Более детально этот вопрос обсуждается в главе 3.

Наконец, мы добрались до имени метода main. Здесь нет ничего необычного, просто все существующие реализации Java-интерпретаторов, получив команду интерпретировать класс, начинают свою работу с вызова метода main. Java-транслятор может оттранслировать класс, в котором нет метода main. А вот Java-интерпретатор запускать классы без метода main не умеет.

Все параметры, которые нужно передать методу, указываются внутри пары круглых скобок в виде списка элементов, разделенных символами «;» (точка с запятой). Каждый элемент списка параметров состоит из разделенных пробелом типа и идентификатора. Даже если у метода нет параметров, после его имени все равно нужно поставить пару круглых скобок. В примере, который мы сейчас обсуждаем, у метода main только один параметр, правда довольно сложного типа.

Элемент String args[] объявляет параметр с именем args, который является массивом объектов — представителей класса String. Обратите внимание на квадратные скобки, стоящие после идентификатора args. Они говорят о том, что мы имеем дело с массивом, а не с одиночным элементом указанного типа. Мы вернемся к обсуждению массивов в следующей главе, а пока отметим, что тип String — это класс. Более детально о строках мы поговорим в главе 8.

System. out. prlntln(«Hello World!»);

В этой строке выполняется метод println объекта out. Объект out объявлен в классе OutputStream и статически инициализируется в классе System. В Лекциях 8 и 12 у вас будет шанс познакомиться с нюансами работы классов String и OutputStream.

Закрывающей фигурной скобкой в строке 4 заканчивается объявление метода main, а такая же скобка в строке 5 завершает объявление класса HelloWorld.

Теперь, когда мы подробно рассмотрели минимальный Java-класс, давайте вернемся назад и рассмотрим общие аспекты синтаксиса этого языка. Программы на Java — это набор пробелов, комментариев, ключевых слов, идентификаторов, литеральных констант, операторов и разделителей.

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

Хотя комментарии никак не влияют на исполняемый код программы, при правильном использовании они оказываются весьма существенной частью исходного текста. Существует три разновидности комментариев: комментарии в одной строке, комментарии в нескольких строках и, наконец, комментарии для документирования. Комментарии, занимающие одну строку, начинаются с символов // и заканчиваются в конце строки. Такой стиль комментирования полезен для размещения кратких пояснений к отдельным строкам кода:

а = 42; // если 42 — ответ, то каков же был вопрос?

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

* Этот код несколько замысловат.

Третья, особая форма комментариев, предназначена для сервисной программы javadoc, которая использует компоненты Java-транслятора для автоматической генерации документации по интерфейсам классов. Соглашение, используемое для комментариев этого вида, таково: для того, чтобы разместить перед объявлением открытого (public) класса, метода или переменной документирующий комментарий, нужно начать его с символов /** (косая черта и две звездочки). Заканчивается такой комментарий точно так же, как и обычный комментарий — символами */. Программа javadoc умеет различать в документирующих комментариях некоторые специальные переменные, имена которых начинаются с символа @. Вот пример такого комментария:

* Этот класс умеет делать замечательные вещи. Советуем всякому, кто

* захочет написать еще более совершенный класс, взять его в качестве

* @see Java. applet. Applet

* ©author Patrick Naughton

class CoolApplet extends Applet < /**

* У этого метода два параметра:

* @param key — это имя параметра.

* @param value — это значение параметра с именем key.

*/ void put (String key, Object value) <

Зарезервированные ключевые слова


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

Программирование на языке JAVA

Описание: Данный курс Программирование на языке JAVA был впервые прочитан в осеннем семестре 1998 года для студентов 5 курса специальности 2204 «Программное обеспечение вычислительной техники и автоматизированных систем». Содержание: Аннотация. Революция по имени Java. Отличия Java от C++. Введение в язык Java. Типы. Операторы. Управление выполнением программы. Классы. Пакеты и интерфейсы. Работа со строками. Обработка исключений. Легковесные процессы и синхронизация. Утилиты. Ввод-вывод. Сетевые средства. Апплеты. Набор абстракций для работы с окнами. Модели обработки событий. Работа с изображениями. Приложение 1. Инструментальные средства JDK. Приложение 2. Новое в Java 1.1. Литература. Лабораторные работы.

Автор: Картузов А.В.

Версия: 1.0 Рейтинг программы: 963

ID номер программы в каталоге 7735.

Скачать программу можно на официальном сайте автора.

Дата регистрации в каталоге Softholm.com 2007-06-15 19:31:29

Голосовать за программу. Ваша оценка поможет другим посетителям.

Все программы этого автора — Картузов А.В.:

Другие продукты, включенные в каталог 15 июня 2007 года

Примечания:

— Виды лицензий: Freeware — бесплатные программы, Shareware — условно-бесплатные, подробнее.

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

— Описания софта иногда включают компьютерный сленг: Ака, девайс, фривар, хинт, фича, наладонник, релиз, движок, GUI, ЖЖ, IMHO, IIRC, FAQ . словарь.

Лекция 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 (джава, ява, жарг. жаба) — объектно-ориентированный язык программирования, разрабатываемый компанией 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 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.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
http://www.juga.ru/

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

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

Цитирование материалов моего сайта приветствуется! при условии видимой действующей! гиперссылки на мой сайт. [Ссылки]

Если Вы нашли опечатку на этой странице, пожалуйста, выделите ее мышью и нажмите Ctrl+Enter. Сделаем язык чище!

Илон Маск рекомендует:  Собираем очень мощный компьютер за 50000-55000 рублей
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL