Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Лекция 2. Основы объектно-ориентированного программирования

33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

Лекция 3. Лексика языка

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

Лекция 4. Типы данных

69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

Лекция 5. Имена. Пакеты

90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

Лекция 6. Объявление классов

109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128

Лекция 7. Преобразование типов

129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144

Лекция 8. Объектная модель в Java

145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160

Лекция 9. Массивы

161 162 163 164 165 166 167 168 169 170 171 172 173 174

Лекция 10. Операторы и структура кода. Исключения

175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195

Лекция 11. Пакет java.awt

196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224

Лекция 12. Потоки выполнения. Синхронизация

225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241

Лекция 13. Пакет java.lang

242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260

Лекция 14. Пакет java.util

261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286

Лекция 15. Пакет java.io

287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314

Лекция 16. Введение в сетевые протоколы

315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344

Это связано с тем, что JVM, по сути, представ­ляет собой интерпретатор, который работает всегда медленнее, чем ис­полняется откомпилированный код. Однако успешная оптимизация, устранившая этот недостаток, была еще впереди. Также отмечались до­вольно бедные возможности AWT, отсутствие работы с базами данных и другие.

В декабре 1996 года объявляется новая версия JDK 1.1, сразу выкла­дывается для свободного доступа бета-версия. В феврале 1997 года выходит финальная версия. Что было добавлено в новом выпуске Java?

Конечно, особое внимание было уделено производительности. Многие части виртуальной машины были оптимизированы и переписаны с использованием Assembler, а не С, как до этого. Кроме того, с октября 1996 года Sun развивает новый продукт - Just-In-Time компилятор, ЛТ. Его задача — транслировать Java байт-код программы в "родной" код опе­рационной системы. Таким образом, время запуска программы увеличи­вается, но зато выполнение может ускоряться в некоторых случаях до 50 раз! С июля 1997 года появляется реализация под Windows и ЛТ стандарт­но входит в JDK с возможностью отключения.

Были добавлены многие новые важные возможности. JavaBeans -технология, объявленная еще в 1996 году, позволяет создавать визуальные Компоненты, которые легко интегрируются в визуальные средства разра­ботки. JDBC (Java DataBase Connectivity) обеспечивает доступ к базам Данных. RM1 (Remote Method Invocation) позволяет легко создавать рас­пределенные приложения. Были усовершенствованы поддержка нацио­нальных языков и система безопасности.

За первые три недели JDK 1.1 был скачан более 220.000 раз, менее Чем через год — более двух миллионов раз. На данный момент версия 1.1 считается полностью устаревшей и ее развитие остановилось на 1.1.8. Од­нако из-за того, что самый распространенный браузер MS IE до сих пор Поддерживает только эту версию, она продолжает использоваться для на­писания небольших апплетов.

Кроме того, с 11 марта 1997 года компания Sun начала предлагать Java Runtime Environment, JRE (среду выполнения Java). По сути дела, это минимальная реализация виртуальной машины, необходимая для испол­нения Java-приложений, без компилятора и других средств разработки. Если пользователь хочет только запускать программы, это именно то, что ему нужно.

Как видно, самым главным недостатком осталась слабая поддержка графического интерфейса пользователя (GUI). В декабре 1996 года ком­пании Sun и Netscape объявляют новую библиотеку IFC (Internet Foundation Classes), разработанную Netscape полностью на Java и пред­назначенную как раз для создания сложного оконного интерфейса. В ап­реле 1997 года объявляется, что компании планируют объединить техно­логии AWT от Sun и IFC от Netscape для создания нового продукта Java Foundation Classes, JFC, в который должны войти:

• усовершенствованный оконный интерфейс, который получил особое название - Swing;

• реализация Drag-and-Drop;

• поддержка 20-графики, более удобная работа с изображениями;

•  Accessibility API для пользователей с ограниченными возможностями и другие функции. Компания IBM также поддержала разработку новой технологии. В июле 1997 года стала доступна первая версия JFC. Перво­начально библиотеки назывались, например, com.sun.java.swing для ком­понентов Swing. В марте 1998 года вышла финальная версия этой техно­логии. За полгода продукт был скачан более 500.000 раз.

Выход следующей версии Java 1.2 много раз откладывался, но в ито­ге она настолько превзошла предыдущую 1.1, что ее и все последующие версии начали называть платформой Java 2 (хотя номера, конечно, по-прежнему отсчитывались как l.x.x, см. выше описание правил нумера­ции). Первая бета-версия стала доступной в декабре 1997 года, а финаль­ная версия была выпущена 8 декабря 1998 года, и за первые восемь меся­цев ее скачали более миллиона раз.

Список появившихся возможностей очень широк, поэтому перечис­лим наиболее значимые из них:

• существенно переработанная модель безопасности, введены по­нятия политики (policy) и разрешения (permission);

• JFC стал стандартной частью JDK, причем библиотеки стали называться, например, javax.swing для Swing (название javax указывает, что до этого библиотека считалась расширением Java);

• полностью переработанная библиотека коллекций (collection framework) - классов для хранения набора объектов;

• Java Plug-in был включен в JDK;

•  улучшения в производительности, глобализации (независимости от особенностей разных платформ и стран), защита от "пробле-мы-2000".

С февраля 1999 года исходный код самой JVM был открыт для бес­платного доступа всем желающим.

Самое же существенное изменение произошло 15 июня 1999 года, спустя полгода после выхода JDK 1.2. На конференции разработчиков JavaOne компания Sun объявила о разделении развития платформы Java 2 на три направления:

• Java 2 Platform, Standard Edition (J2SE);

• Java 2 Platform, Enterprise Edition (J2EE);

• Java 2 Platform, Micro Edition (J2ME).

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

J2SE предназначается для использования на рабочих станциях и персональных компьютерах. Standard Edition - основа технологии Java и прямое развитие JDK (средство разработчика было переименовано в j2sdk).

J2EE содержит все необходимое для создания сложных, высокона­дежных, распределенных серверных приложений. Условно можно ска­зать, что Enterprise Edition - это набор мощных библиотек (например, Enterprise Java Beans, EJB) и пример реализации платформы (сервера при­ложений, Application Server), которая их поддерживает. Работа такой платформы всегда опирается на j2sdk.

J2ME является усечением Standard Edition, чтобы удовлетворять жестким аппаратным требованиям небольших устройств, таких как кар­манные компьютеры и сотовые телефоны.

Далее развитие этих технологий происходит разными темпами. Если J2SE уже была доступна более полугода, то финальная версия J2EE вышла лишь в декабре 1999 года. Последняя версия j2sdk 1.2 на данный момент -1.2.2.

Тем временем борьба за производительность продолжалась, и Sun пытался еще больше оптимизировать виртуальную машину. В марте 1999 года объявляется новый продукт - высокоскоростная платформа (engine) ava HotSpot. Была оптимизирована работа с потоками исполнения, су­щественно переработаны алгоритмы автоматического сборщика мусора (garbage collector) и многое другое. Ускорение действительно было очень существенным, всегда заметное невооруженным взглядом за несколько МИнУт Работы с Java-приложением.


Новая платформа может работать в двух режимах — клиентском и серверном. Режимы различались настройками и другими оптими­зирующими алгоритмами. По умолчанию работа идет в клиентском режиме.

Развитие HotSpot продолжалось более года, пока в начале мая 2000 года высокопроизводительная JVM не вошла в состав новой версии J2SE. В эту версию было внесено еще множество улучшений и исправлений, но именно прогресс в скорости работы стал ключевым изменением нового j2sdk 1.3 (последняя подверсия 1.3.1).

Наконец, последняя на данный момент версия J2SE 1.4 вышла в фе­врале 2002 года. Она была разработана для более полной поддержки web-сервисов (web services). Поэтому основные изменения коснулись работы с XML (Extensible Markup Language). Другое революционное добавление - выражение assert, позволяющее в отладочном режиме проверять вер­ность условий, что должно серьезно упростить разработку сложных при­ложений. Наконец, были добавлены классы для работы с регулярными выражениями.

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

В заключение для демонстрации уровня развития Standard Edition приведем стандартные диаграммы, описывающие все составляющие тех­нологии, из документации к версиям 1.3 и 1.4.


Заключение

В этой лекции мы рассказали о том, какая непростая ситуация сло­жилась в корпорации Sun в эпоху развития персональных компьютеров в конце 1990 года. Патрик Нотой в своем письме сумел выявить истинные Причины такого положения и обозначить истинные цели для создания ус­пешного продукта. Благодаря этому при поддержке Джеймса Гослинга начался проект Green. Одним из продуктов, созданных в рамках этого

Проекта, стала совершенно новая платформа Oak. Для ее продвижения л*

Sun учредила дочернюю компанию FirstPerson, но настоящий успех при­шел, когда платформу, переименовав в Java, сориентировали на примене­ние в Internet.

Глобальная сеть появилась в апреле 1993 года с выходом первого бра­узера Mosaic 1.0 и завоевывала пользовательскую аудиторию с порази­тельной скоростью. Первым примером Java-приложений стали апплеты, запускаемые при помощи специально созданного браузера HotJava. На­конец, после почти четырехлетней истории создания и развития, Java бы­ла официально представлена миру. Благодаря подписанию лицензионно­го соглашения с Netscape, это событие стало поистине триумфальным.

Были рассмотрены различные варианты применения Java. Отдельно был описан язык Java Script, который, несмотря на сходство в названии, имеет не так много общего с Java. Подробно рассмотрены отличительные особенности Java. Описаны базовые продукты от Sun: JDK и JRE. Кратко освещена история развития версий платформы Java, включая добавляемые технологии и продукты.

Вариант 1

1.       Какими из перечисленных свойств обладает платформа Java?

□ кросс-платформенность

□ повышенная надежность Java-программ относительно других языков

□ объектная модель, построенная на основе объектной модели С++

2.       Является язык Java компилируемым или интерпретируемым?

□ компилируемым

□ интерпретируемым

□ используются оба подхода

3.       Какие версии Java называются Java 2?

□        1.2,1.2.x П   1.2 и выше П   с 2.0 и выше

Вариант 2

Вариант 3

1.       Java является языком программирования или платформой?

□ языком программирования, так как на Java пишут программы

□ платформой, так как в стандарт Java входит множество библиотек для работы с базами данных, XML и т.д.

□ платформой, так как Java-программы исполняются на основе универсальной виртуальной машины JVM, а потому не должны учитывать особенностей аппаратной платформы или ОС

2.       Автоматический сборщик мусора (garbage collector) в Java - это механизм, который:

□        удаляет объекты, когда заканчивается доступная оперативная память

□       удаляет объекты, когда не остается ни одной ссылки на них Q   удаляет объекты, которые давно не используются

3.   Какие из перечисленных свойств являются общими для программ, написанных на С++ и Java?

|~l   компилируемые

□      интерпретируемые

П     имеют схожий синтаксис

Г~|  имеют схожие объектные модели

1.   На какие направления была разделена Java в середине 1999 года вскоре после выхода Java 2?

□ JDK для разработки, и JRE для запуска программ

□ Java 2 Standard Edition (платформа для разработки приложений для персональных компьютеров), Java 2 Enterprise Edition (независимая платформа для разработки серверных приложений), Java 2 Micro Edition (независимая платформа для разработки приложений для мобильных и других устройств

с ограниченными аппаратными ресурсами)

□       J2SE - общая платформа для Java-приложений, J2EE - набор библиотек для создания серверных приложений, J2ME - набор библиотек для создания приложений для мобильных устройств

2.      Какая версия Java поддерживается большинством браузеров в Internet?

□   1.0

Q   1 • 1, после установки специального продукта Java Plug-in

П   1 ■ 1, возможна любая версия после установки специального продукта Java Plug-in

3.      Что означает выражение deprecateci?

П   используемые функции устарели, но поддерживаются в целях совместимости

П   используемые функции поддерживаются, но работают неэффективно

П   используемые функции не поддерживаются