Презентация "Введение в технологию Java"

Подписи к слайдам:
Модуль 1
  • Введение в технологию Java
  • <number>
Литература
  • Герберт Шилдт. Java. Полное руководство, М.: Вильямс, 2012. – 1104 с.
  • Кей С. Хорстманн, Гари Корнелл. Библиотека профессионала. Основы. Том 1 (Том 2). М.: Вильямс, 2010. – 816 c.
  • Брюс Эккель. Философия Java. Библиотека программиста. СПб.: Питер, 2011. – 640 с.
  • Берт Бэйтс, Кэтти Сьерра. Изучаем Java. Эксмо, 2012. – 720 с.
  • Монахов В. Язык программирования Java и среда NetBeans. BHV-СПб, 2011. – 704 с.
  • <number>
Программное обеспечение курса
  • Дополнительное ПО
    • Firefox/Internet Explorer
    • Java DB
  • Компьютер класса
  • Основное ПО
  • JDK 7
  • NetBeans 7
Технология Java: история
  • Первая версия языка была официально опубликована в 1995 году
  • Основная причина – потребность в независящем от платфор­мы языке
  • <number>
JAVA и C++
  • Синтаксис операторов Java практически полностью совпадает с синтаксисом языка C++;
  • Java не обладает совместимостью с C++;
  • Java является гораздо более сильно типизированным по сравнению с C++;
  • В отличие от C++, ни один из элементов спецификации Java не зависит от реализации. И размер основных типов данных, и арифметические операции над ними строго определены.
  • <number>
Цели создания нового языка
  • Повышение скорости разработки;
  • Устранение ошибок других языков ;
  • Переносимость кода;
  • Многопоточность;
  • Загрузка классов динамически, когда они на самом деле необходимы;
  • Поддержка изменения программы динамически во время выполнения загрузки классов из разных источников;
  • Обеспечение более высокого уровня безопасности.
  • <number>
Средства достижения целей
  • The Java Virtual Machine (JVM™)
    • программы, написанные на языке Java, выполняются под управлением специальной программы – виртуальной Java-машины
  • Garbage collection
    • сборщик мусора
  • The Java Runtime Environment (JRE)
  • JVM tool interface
  • <number>
The Java Virtual Machine
  • Java Virtual Machine (JVM) – программа виртуальной Java-машины, скомпилированная в коды соответствующего процессора – система времени выполнения Java;
  • Взаимодействует с операционной системой, обеспечивая доступ к файлам или поддержку графики;
  • Исполняет байт-код;
  • Обеспечивает автоматическое высвобождение памяти, занятой ненужными объектами (сборка мусора).
  • <number>
Java Virtual Machine
  • <number>
Реализация JVM
  • <number>
JRE выполняет основные задачи
  • Java Runtime Environment (сокр. JRE) — минимальная реализация виртуальной машины, необходимая для исполнения Java-приложений, без компилятора и других средств разработки. Состоит из виртуальной машины — Java Virtual Machine и библиотеки Java-классов.
  • Загружает код (Loads code)
  • Проверяет код (Verifies code)
  • Выполняет код (Executes code)
  • <number>
Загрузчик классов (Class Loader)
  • Загружает все классы, необходимые для выполнения программы.
  • Сохраняет классы локальной файловой системы в отдельных пространствах имен (namespaces).
  • Предотвращает подмену (spoofing).
  • <number>
Проверка байт-кода (Bytecode Verifier)
  • Проверка гарантирует, что:
  • Код соблюдает спецификацию JVM.
  • Код не нарушает целостность системы (system integrity).
  • Код не вызывает переполнения стека (stack overflows) или недостаточного расхода (underflows).
  • Типы параметров для всех выражений кода являются корректными.
  • Нет не правильных преобразований данных (преобразования целых чисел к указателям).
  • <number>
Функции Java Runtime Environment
  • <number>
Выполнение кода JRE Just-In-Time (JIT) компилятор
  • JIT-компиляция (Just-In-Time) – компиляция "по ходу дела", "налету"
  • <number>
Установка среды Java
  • Существует два основных способа установки Java-машины на клиентский компьютер:
  • JRE из поставки Software Development Kit (SDK) - Комплекта разработки программного обеспечения.
  • Специализированный вариант JRE в составе Интернет-браузера, называющийся Java plugin.
  • Комплект последних версий SDK можно свободно загружать с сайта
  • http://www.oracle.com/technetwork/java/javase/downloads/(jre7-downloads-1880261.html)
  • <number>
Типы JDK
  • Java Development Kit (сокращенно JDK) — бесплатно распространяемый компанией Oracle Corporation (ранее Sun Microsystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE).
  • SDK – Software Development Kit;
  • Java ME – комплект Java Micro Edition для создания приложений, работающих на встраиваемых и мобильных устройствах.
  • Java SE – комплект Java Standard Edition для программирования "толстых клиентов".
    • Java EE– комплект Java для создания серверного программного обеспечения.
  • Java Card – комплект для устройств с крайне ограниченными вычислительными ресурсами. По сравнению с другими версиями Java изменен байткод, требования к исполняющей платформе, состав стандартных библиотек..
  • <number>
Версии платформы Java SE
  • Год
  • JDK
  • Платформа
  • 1996
  • 1.0
  • 1
  • 1997
  • 1.1
  • 1
  • 1998
  • 1.2
  • 2
  • 2000
  • 1.3
  • 2
  • 2002
  • 1.4
  • 2
  • 2004
  • 1.5
  • 5
  • 2006
  • 1.6
  • 6
  • 2011
  • 1.7
  • 7
  • 2014 (март)
  • 1.8
  • 8
Типы приложений Java SE /EE
  • Приложение (application) – аналог "обычной" прикладной программы.
  • Апплет (applet) – специализированная программа с ограниченными возможностями, работающая в окне WWW-документа под управлением браузера.
  • Сервлет (servlet) - специализированная программа с ограниченными возможностями, работающая в WWW на стороне сервера. Используется в технологии JSP (Java Server Pages) для программирования WWW-документов на стороне сервера.
  • Серверное приложение (Enterprise application) – предназначено для использования на стороне сервера.
  • Библиотека (Java Class Library)
  • <number>
Инсталляция Java Development Kit
  • Скопировать и установить Java Development Kit.
  • http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • Установить переменные окружения JAVA_HOME, PATH и CLASSPATH
    • Установка переменной окружения PATH позволяет запускать инструменты JRE (компилятор, интерпретатор и т.д.) без перехода в каталог, где они установлены
    • Переменная CLASSPATH позволяет исполняющей системе находить и запускать Java-программы из различных каталогов
    • Переменная JAVA_HOME используется многими приложениями Java для определения расположения Java SDK в файловой системе
  • <number>
Дополнительные ресурсы
  • Ресурс
  • Сайт
  • Образование и обучение
  • http://education.oracle.com
  • Документация
  • http://www.oracle.com/technology/documentation
  • Загрузка продуктов
  • http://www.oracle.com/technology/software
  • Статьи
  • http://www.oracle.com/technology/pub/articles
  • Поддержка
  • http://www.oracle.com/support
  • Форумы по продуктам
  • http://forums.oracle.com
  • Руководства
  • http://www.oracle.com/technetwork/tutorials/index.html
  • Sample Code
  • https://www.samplecode.oracle.com
  • Oracle Technology Network for Java Developers
  • http://www.oracle.com/technetwork/java/index.html
  • Обучающие материалы
  • http://www.oracle.com/goto/oll
  • Mobile & Embedded
  • The Java Community
Java Community Process (JCP)
  • Сообщество работает на основании набора документов и процедур JSR (Java Specification Request):
    • Запрос (Предлагаемая спецификация свободно принимается на рассмотрение членами сообщества, присваивается номер);
    • Черновик спецификации (первый черновик спецификации выносится на рассмотрение Исполнительного Комитета и членов сообщества, решение о продолжении или доработке);
    • Открытый черновик (черновик спецификации в свободном доступе, доработка, голосование Исполнительного Комитета для окончательного утверждения. Эталонная реализация и набор автоматических тестов);
    • Поддержка (доработка, уточнение или расширение эталонной реализации и набора тестов по мере поступления запросов).
  • Java Community Process (JCP) — сформированный в 1998 году формальный процесс, который позволяет заинтересованным лицам участвовать в формировании будущих версий спецификаций платформ языка Java.
  • http://jcp.org
OpenJDK
  • OpenJDK - проект по созданию полностью совместимого Java Development Kit, состоящего исключительно из свободного и открытого исходного кода.
    • http://openjdk.java.net/
    • Имеет лицензию свободно-распространяемого программного обеспечения (GNU GPL)
    • Эталонная реализация JDK
    • Реализует новые возможности языка
    • Открыт для членов сообщества
    • Базируется на Oracle JDK
Создание программы на Java
  • Написать программу на Java и сохранить ее на диск.
  • Выполнить компиляцию программы, чтобы перевести ее с языка Java в специальный байт‐код, который понимает виртуальная машина JVM.
  • Запустить программу.
  • <number>
Создание программы на Java
  • Варианты работы:
  • Использовать JDK вместе с текстовым редактором. Компиляция и запуск программы на выполнение производится из командной строки.
  • Использовать IDE, например NetBeans или Eclipse.
  • Использовать JDK и текстовый редактор, интегрированный вместе с этим пакетом, например, JEdit. Компиляция и запуск на выполне­ние программ производятся внутри редактора.
  • <number>
Средства разработки приложений
  • Утилита
  • Назначение
  • javac
  • Компилятор в режиме командной строки для программ, написанных на языке Java
  • java
  • Утилита для запуска в режиме командной строки откомпилированных программ-приложений
  • jdb
  • Отладчик программ, написанных на языке Java
  • javadoc
  • Генератор документации по классам на основе комментариев, начинающихся с /**
  • jar
  • Создание и управление Java-архивами (jar)
  • <number>
Создание простого Java-приложения
  • <number>
Компиляция и выполнение программы
  • Компиляция TestGreeting.java:
  • javac TestGreeting.java
  • Greeting.java компилируется автоматически.
  • Запуск приложения:
  • java TestGreeting
  • Устранение ошибок компиляции и времени выполнения (compile and runtime errors).
  • <number>
Java Technology Runtime Environment
  • <number>
Ошибки при компиляции Compile-Time Errors
  • <number>
Ошибки времени выполнения Runtime Errors
  • Can’t find class TestGreeting
  • Exception in thread "main" java.lang.NoSuchMethodError: main
  • <number>
Тест
  • Java платформа, предназначенная для разработки приложений для устройств ограниченных в ресурсах (ограниченная вычислительная мощность, объём памяти, малый размер дисплея, питание от портативной батареи, низкоскоростные и недостаточно надёжные коммуникационные возможности)
    • Java SE JDK
    • Java ES SDK
    • Java EE SDK
    • Java ME SDK
  • <number>
Использование интегрированной среды разработки
  • Интегрированная среда разработки (integrated development environment - IDE) - это инструмент который помогает в разработке Java приложений.
    • Бесплатные IDEs:
    • NetBeans IDE - Oracle
    • JDeveloper - Oracle
    • Eclipse – IBM
    • Платные IDE:
    • IntelliJ IDEA - JetBrains
    • Преимущества IDE:
    • Полная интеграция
    • Простота развертывания
    • Смарт-редактор
    • Простая разработка проекта
    • Встроенное управления исходным кодом
  • <number>
Загрузка IDE NetBeans
    • Доступна бесплатно на NetBeans.org или Oracle.com
  • <number>
NetBeans IDE and New Project Wizard
  • <number>
Практическое занятие 1
  • Установка требуемого ПО
  • Настройка переменных окружения для выполнения Java-программ
  • Написание первой программы
  • Компиляция, исправление ошибок, выполнение программы
  • Работа в интегрированных средах разработки: NetBeans и Eclipse
  • <number>