
- •JAVA-ТЕХНОЛОГИЯ
- •Литература
- •Предыстория Java
- •История Java
- •Новая версия Java (сентябрь 2013)
- •Java 1.7: наиболее важные новые возможности
- •Планы Java 8 (2013-2014)
- •Java и Oracle
- •Основные особенности Java
- •Области применения Java
- •Основные понятия Java
- •Первая программа на Java (исполняемый класс)
- •Компиляция и выполнение (интерпретация) Simple с помощью JDK
- •Инструменты программирования на Java
- •Сертификация реализаций Java и “Java War”
- •Виды Java-приложений
- •Java и Microsoft.NET
- •Развитие Java-технологии: Java Community Process (JCP)
- •Ваше участие в развитии Java API и Java-технологии

Области применения Java
11
Мобильные телефоны (Nokia, Siemens, Samsung, Motorola, Alcatel, Panasonic, DoCoMo ,etc.) - JME
Другие встроенные системы: smart-карты (JavaCard), органайзеры, цифровое телевидение (set-top boxes) и др. - JME
Программирование для Internet – апплеты (applets), сервлеты (servlets), JavaServer pages (JSP), Web-сервисы, сетевые соединения (sockets), etc. – JSE, JEE
Интегрированные инструментальные средства (NetBeans, IBM WebSphere, IntelliJ IDEA, Eclipse, etc.)
Решения (enterprise solutions): JEE
Java - универсальная платформа для разработки любых классов приложений
Поддержка Java крупными фирмами: производители мобильных телефонов; IBM; HP
IBM: Real-time Java (работает под Real-Time Linux) в среде разработки IBM WebSphere Real-time (2006)
(C)В.О. Сафонов. 2013

Основные понятия Java
12
Класс (class), объект (object), объектная ссылка
(object reference)
Поля (fields), методы (methods)
Иерархия и наследование классов: подкласс
(subclass) – класс-потомок ; надкласс (суперкласс, superclass) – класс-предок
Интерфейс (interface) - спецификация поведения объектов данного класса; совокупность констант и заголовков методов
Аннотация (annotation) – содержательный комментарий (спецификация), дополняющий Java-код и оформленный с помощью интерфейсов. Возможна разработка пользовательских процессоров аннотаций
Классы и интерфейсы могут быть
параметризованными (generic). Пример: любая
коллекция (список, стек и др.), параметризованная типом элемента
Пакет (package) – совокупность классов.
Имя пакета ~ domain name: com.sun.medialib.mlib(C) В.О. Сафонов. 2013
Статические (static), скрытые (private), терминальные
(final) и защищенные (protected) поля и методы

Java и C++
13
Все методы в Java – либо виртуальные, либо статическиеВ Java нет указателей и операций над ними, но есть
встроенный сборщик мусора: System.gc() (по умолчанию – фоновый поток)
В Java есть только перегрузка методов (method overloading), но нет перегрузки операций (operator overloading)
В Java, в дополнение к абстрактным классам и абстрактным методам, есть также интерфейсыВ Java, в отличие от Pascal, C, C++, нет понятия
“программа”, но есть понятие “исполняемый класс”.В Java вместо глобальных переменных – статические
поля классов
В Java нет множественного наследования классов; оно
есть только для интерфейсов
В Java есть встроенная в язык и core API поддержка
(C) В.О. Сафонов. 2013
многопоточности (multi-threading)

Первая программа на Java (исполняемый класс)
14
public class Simple{
public static void main(String[] args)
{
System.out.println(“Java is now an Oracle product!”);
}
} // Simple
(C) В.О. Сафонов. 2013

Компиляция и выполнение (интерпретация) Simple с помощью JDK
15
Создание в рабочей директории файла Simple.java
% javac Simple.java
В рабочую директорию записан файл Simple.class – байт-код Simple
% java Simple
Java is now an Oracle product!
%
(C) В.О. Сафонов. 2013

Инструменты программирования на Java
16
JDK (Oracle) – свободно распространяется
NetBeans (Oracle) - свободно распространяется
Eclipse
IntelliJ IDEA
IBM WebSphere
J#.NET (Microsoft)
Десятки интегрированных сред для Java
Расширения интегрированных сред для Java: plug-ins, modules (NetBeans)
(C)В.О. Сафонов. 2013

Сертификация реализаций Java и “Java War”
17
Java Compatibility Kit (JCK, Sun Microsystems) – канонический набор тестов ( > 20000) для оценки реализаций Java
Microsoft VJ++ не прошел сертификацию тестами JCK из-за расширений Java, реализованных Microsoft, но использовал Java trademark в своих продуктах (ранее назывался Visual Java++)
Sun подала в суд на Microsoft (1997) за эти незаконные действия
ивыиграла: Microsoft лишили права использования Java trademark
Microsoft разработала язык C# и платформу .NET – конкурент Java
итехнологии Enterprise Java Beans
Microsoft приняла решение не поддерживать Java в браузере Microsoft Internet Explorer 6.x в системе Windows XP (однако эту поддержку можно скачать отдельно)
Sun реализовала Java plug-ins для использования Java с браузером Microsoft Internet Explorer 6.x в Windows XP (http://java.sun.com)
2004: Sun и Microsoft заключили соглашение на 10 лет в области интеллектуальной собственности. Формально Sun и Microsoft - партнеры
Java и .NET “дружат” (на уровне Web-сервисов)
Новые “Java wars” ведутся теперь между Oracle и Google…
(C)В.О. Сафонов. 2013

Виды Java-приложений
18
Отдельная программа (standalone application) - исполняемый класс
Пакет (package) – совокупность (библиотека) классов
Апплет (applet) – специальный класс, связанный с Web- страницей, исполняемый на клиентской машине при просмотре данной Web-страницы с помощью браузера (Netscape, Internet Explorer, HotJava, etc.)
Сервлет (servlet) – специальный класс, используемый для реализации Web-сервера
Java Bean – независимая Java-компонента, используемая как строительный блок для создания больших Java- приложений (сравните с COM-объектами, компонентами
вC#, Oberon и др.)
Java Web Start Application (JNLP application)
Проблема: отсутствует разновидность структурирования Java-классов, позволяющая загружать и выгружать группу взаимосвязанных классов (ср. с .NET: application domain). Решение в NetBeans: реализованы концепции module и module suite.
В Java 8 или в Java 9 появится концепция модуля (2013 - 2014)
(C)В.О. Сафонов. 2013

Java и Microsoft.NET
19
Microsoft.NET (2000) - окружение времени выполнения,
обеспечивающее поддержку многоязыкового надежного и безопасного объектно-ориентированного
программирования и Web-программирования.
Основные языки- C#, VB.NET, Managed C++, J#. ОС: Windows 2000, Windows XP, 2003, Vista.
Многие возможности.NET спроектированы и
реализованы под влиянием Java.
Основа Microsoft.NET: Common Language Runtime (CLR); промежуточный код (СIL), аналогичный байт-коду; cтруктура assembly (СIL + metadata); JIT-компиляция MSIL-кода, атрибуты
В отличие от Java, .NET - стандартизована набором
ECMA-стандартов
Rotor (2002) - Shared Source (открытая некоммерческая) реализация .NET для Windows 2000/XP, UNIX FreeBSD,
Linux.
Реализация Java с 2005 г. распространяется с исходными текстами (проект openJDK)
Платформы Java и .NET(C)-Вв.Оравной. Сафонов.степени2013 заслуживают детального изучения

Развитие Java-технологии: Java Community Process (JCP)
20
http://www.jcp.org
Сообщество пользователей Java и разработчиков Java- технологии. Цель: обсуждение и развитие Java (языка,
JVM, Java API)
Членство в JCP: индивидуальное – бесплатно, корпоративное - $2,000
Java Specification Request (JSR) – документ,
описывающий новые предлагаемые возможности Java
Reference Implementation (RI) – ссылочная реализация предлагаемого JSR
Technology Compatibility Kit (TCK) – инструмент для тестирования реализаций предлагаемого JSR
Final Approval Ballot (FAB) – процесс принятия Java-
сообществом нового JSR (решается путем голосования)
Проф. В.О. Сафонов – член JCP (c 2011)
Вы тоже можете стать участником JCP
(C)В.О. Сафонов. 2013