
- •Краткий экскурс в историю возникновения Java
- •Количественные характеристики роста
- •Семейства Java-технологий
- •SDK 1.2 – 1.4 (Java2 – Java4)
- •Java5
- •Java6 – Java7
- •Состав JDK Java7
- •Первый пример приложения на Java
- •Структура первой программы
- •Начальные элементы соглашений
- •Консольная технология компиляции и исполнения
- •Сборка проектов с использованием Apache Ant (или Apache Maven )
- •Консольная технология с использованием утилиты ant
- •Последовательность
- •Файл запуска ant (runant.bat)
- •Файл проекта ant: build.xml
- •Пример запуска ant и выполнения результатов
- •Жизненный цикл приложения в утилите Apache Maven (1)
- •Жизненный цикл приложения в утилите Apache Maven (2)
- •Жизненный цикл приложения в утилите Apache Maven (3)
- •Жизненный цикл приложения в утилите Apache Maven (4)
- •Первый проект с использованием IDE Netbeans
- •Последовательность
- •Рабочий стол оболочки Eclipse Juno

Краткий экскурс в историю возникновения Java
1990 – 1992 проект фирмы Sun OAK (дуб)
1995 |
Java Development Kit (JDK) 1.0 |
1996 |
JDK 1.1.0 – 1.1.9 |
1997 – 1999 Software Development Kit (SDK) |
|
|
Java2 – 4 (JDK 1.2 – 1.4) |
2004 |
SDK Java5 |
2006 |
SDK Java6 |
2011 – 2012 SDK Java7 (Oracle)

Количественные характеристики роста
Версия |
Количество классов и |
Количество полей и |
|
интерфейсов |
методов |
1.0 |
212 |
2125 |
1.1 |
504 |
5478 |
1.2 |
1781 |
20935 |
1.3 |
2130 |
23901 |
1.4 |
3020 |
32138 |



Семейства Java-технологий
Java SE — Java Standard Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.
Java EE — Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия.
Java ME — Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например в мобильных телефонах, КПК, встроенных системах;
JavaFX — технология предназначенная для создания графических веб-интерфейсов корпоративных приложений в бизнесе.
Java Card — технология, предоставляющая безопасную среду для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объемом памяти и возможностями обработки.

JDK 1.0
Основные продукты:
Java language specification (JLS) – спецификация языка Java
(описывающая лексику, типы данных, основные конструкции и т.д.);
спецификация Java Virtual Machine (JVM) – для создателей виртуальных машин (сейчас известно больше 100 ВМ);
Java Development Kit (JDK) – набор средств разработчика, (утилиты, стандартные библиотеки классов и примеры).
8 стандартных библиотек:
java.lang - базовые классы, необходимые для работы любого приложения (название - сокращение от language);
java.util - многие полезные вспомогательные классы;
java.applet - классы для создания апплетов;
java.awt, java.awt.peer - библиотека для создания графического
интерфейса пользователя, называется Abstract Window Toolkit;
java.awt.image - дополнительные классы для работы с изображениями;
java.io - работа с потоками данных (streams) и с файлами;
java.net - работа с сетью.
JDK 1.1
Java Beans – программные компоненты
RMI – вызов удаленных методов (распределенные приложения)
JDBC – связь с базами данных
Сериализация – сохранение и восстановление объектов
JNI- взаимодействие с кодами, написанными на других языках
Reflection – определение методов, свойств объекта во время выполнения программы
Защита – цифровые подписи, генерация ключей, список управления доступом
Добавлены символьные потоки
Изменена обработка событий
Появились внутренние классы



SDK 1.2 – 1.4 (Java2 – Java4)
Библиотека Swing для создания графического интерфейса пользователя .
Реализованы Коллекции.
Добавлена поддержка файлов Policy и цифровых сертификатов пользователя.
Java 2D.
Поддержка технологии drag-and-drop.
Полная поддержка Unicode, включая поддержку ввода на японском, китайском и корейском языках.
Полная поддержка технологии CORBA.
JIT-компилятор, улучшенная производительность.
Усовершенствования инструментальных средств JDK, в том числе поддержка профилирования Java-программ.

Java5
Перечислимые типы. Ранее отсутствовавшие в Java типы, оформлены по аналогии с C++, но имеют ряд дополнительных возможностей.
Аннотации — возможность добавления в текст программы метаданных, не влияющих на выполнение кода, но допускающих использование для получения различных сведений о коде и его исполнении. Одно из применений аннотаций — упрощение создания тестовых модулей для Java-кода.
Средства обобщённого программирования (англ. generics) — механизм, аналогичный реализованному в языке Eiffel (позже также появились и в C#, принципиально отличаются от шаблонов C++), дающий возможность создавать классы и методы с полями и параметрами произвольного объектного типа.
Autoboxing/Unboxing — автоматическое преобразование между скалярными типами Java и соответствующими обертками (например, между int и Integer).
Разрешено создание методов с неопределённым числом параметров.
Разрешён импорт статических полей и методов.
В язык введён цикл по коллекции объектов (итератор, англ. foreach).
Введено использование Javadoc-комментариев, которые используются для автоматического оформления документации по комментариям специального вида в исходном коде.



Java6 – Java7
Изменения синтаксиса языка Java, предназначенные для упрощения общих задач программирования, в том числе:
использование переменных класса String в блоке switch;
использование двоичных чисел (binary literals) с префиксом «0b»;
поддержка подчеркиваний в длинных числовых литералах для улучшения читаемости (например: 23_400_000_000_000_008_407L);
упрощение вызова методов с переменным числом аргументов;
поддержка динамической типизации.
Автоматическое управление (освобождение) ресурсами, отличными от памяти (открытые файлы, …).
Поддержка эллиптической криптографии.
Строгая проверка (верификация) class-файлов.
Обновление классов-коллекций, реализация работы с ними на уровне языка.
Обновленная реализация графического пользовательского интерфейса.
Новые интерфейсы ввода-вывода (nio.2).
…




Состав JDK Java7

Первый пример приложения на Java
/**Здесь предполагается описание класса в целом.
*@version 1.0 01.09.2009
*@author Firstname Lastname
*/
public class HelloWorld {
/** Здесь описывается метод main
* @param args аргументы командной строки */
public static void main( String[] args ) { System.out.println( "Hello, World!" );
}
}