1 © Luxoft Training 2012 Введение в Java Модуль #1.

Презентация:



Advertisements
Похожие презентации
Java: современные технологии разработки ПО Вашенков О.Е. ООО «РСС», разработчик ПО.
Advertisements

Компьютерные технологии в метеорологии (Java-технологии) Чукин В. В.
Платформа Java SE: введение Андрей Дмитриев
1 Java. Введение JDK, JRE, JVM, IDE Ерофеева Елена Анатольевна ассистент кафедры МПУ.
Jav a ЯЗЫК ПРОГРАММИРОВАНИЯ Java ИСТОРИЯ СОЗДАНИЯ Изначально язык назывался Oak («Дуб»), разрабатывался Джеймсом Гослингом для программирования бытовых.
Встроенная документация Java Андрей Дмитриев Инженер-программист Sun Microsystems Февраль 2008.
Вперёд ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЦЕЛИ: ЦЕЛИ: 1. Средство для задания действий, которые должны быть выполнены машиной.(Машинный язык) 1. Средство для задания.
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
БЭСТ Дизайнер проектов Введение Концепции Основные понятия.
Введение в объектно- ориентированное программирование на JAVA Макаревич Л. Г.
Работа с программами на языке JAVA. JAVA объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems. Приложения Java обычно.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Технология MVC в высоконагруженных проектах Андрей Шетухин Илья Космодемьянский.
JavaScript JavaScript – объектно-ориентированный скриптовый язык программирования, разрабатываемый компанией Sun Microsystems. Является диалектом языка.
Разработка сред управляемого исполнения на примере виртуальной машины Java Занятие 1 Салищев С. И.
Архитектура операционных систем Семестр 2, Лекция 1.
Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
Тема 1.3. Сервисное программное обеспечение. 1. Понятие операционного окружения Операцио́нное окруже́ние (англ. operating environment) среда, в которой.
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. Системное программное обеспечение - это комплекс программ, которые обеспечивают эффективное управление компонентами.
1 © Luxoft Training 2013 Модуль 8 Введение Задачи аннотаций Стандартные аннотации Создание собственных аннотаций 8-1 Аннотации.
Транксрипт:

1 © Luxoft Training 2012 Введение в Java Модуль #1

2 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc

3 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг.

4 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг П ервое демонстрационное устройство на новой платформе – PDA Star 7.

5 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг П ервое демонстрационное устройство на новой платформе – PDA Star П опытка занять область приставок для кабельного ТВ.

6 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг П ервое демонстрационное устройство на новой платформе – PDA Star П опытка занять область приставок для кабельного ТВ Java перефокусировали на разработку апплетов. Язык переименовали в Java.

7 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг П ервое демонстрационное устройство на новой платформе – PDA Star П опытка занять область приставок для кабельного ТВ Java перефокусировали на разработку апплетов. Язык переименовали в Java Java Development Kit.

8 © Luxoft Training 2012 История создания 1996 – Java Development Kit – JDK – JDK 1.2, Java 2, разделение на ME/SE/EE 2000– J2SE – J2SE – J2SE 5.0, изменилась нумерация. 2006– Java SE 6, уход от Java – Java SE 72013– Java SE 8

9 © Luxoft Training 2012 История создания

10 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc

11 © Luxoft Training 2012 Особенности Java Простота и наглядность Переносимость Многопоточность Сборка мусора Безопасность

12 © Luxoft Training 2012 Простота и наглядность Изначальная объектно-ориентированность языка. Необходимо избежать сложность существующих языков, упростив синтаксис, но сохранив мощь. Необходимо дать пользователю возможность создавать гибкий, чистый код приложения любого размера.

13 © Luxoft Training 2012 Переносимость Подход С/С++ исходный код машинный код процессор Программа работает только на той платформе, под которую скомпилирована.

14 © Luxoft Training 2012 Переносимость Подход С/С++ исходный код машинный код процессор Программа работает только на той платформе, под которую скомпилирована. Подход Java исходный код байт код ВМ Программа работает на любой платформе где есть ВМ Java Write once, run anyware! ( Windows, Linux, Solaris, NetWare, Mac OS ) ВМ процессор

15 © Luxoft Training 2012 Виртуальная машина и байт-код Как быстро работает виртуальная машина?

16 © Luxoft Training 2012 Виртуальная машина и байт-код Интерпретация байт кода медленнее выполнения аналогичного машинного кода раз :-( Как быстро работает виртуальная машина?

17 © Luxoft Training 2012 Виртуальная машина и байт-код Интерпретация байт кода медленнее выполнения аналогичного машинного кода раз :-( Как быстро работает виртуальная машина? … но появилась Just-In-Time компиляция … :-) ВМ компилирует байт-код в машинный. начиная с версии JDK 1.1

18 © Luxoft Training 2012 Виртуальная машина и байт-код Интерпретация байт кода медленнее выполнения аналогичного машинного кода раз :-( Как быстро работает виртуальная машина? … но появилась Just-In-Time компиляция … :-) ВМ компилирует байт-код в машинный. начиная с версии JDK 1.1 … и HotSpot :-) Адаптивный оптимизирующий JIT-компилятор начиная с версии JDK 1.3

19 © Luxoft Training 2012 Сборка мусора Подход С/С++ выделил память поработал управление памятью ложится на плечи программиста управление памятью ведет к большому числу ошибок освободил память

20 © Luxoft Training 2012 Сборка мусора Подход С/С++ выделил память поработал управление памятью ложится на плечи программиста управление памятью ведет к большому числу ошибок Подход Java ВМ сама занимается освобождение памяти нет ошибок, связанных с памятью освободил память выделил память поработалзабыл

21 © Luxoft Training 2012 Многопоточность и распределенное программирование Многопоточность встроенная поддержка потоков богатая библиотека примитивов синхронизации Распределенность встроенные сетевые возможности пересылка данных и объектов по сети работа с удаленными объектами (RMI)

22 © Luxoft Training 2012 Безопасность Верификация байт-кода. (Некорректный байт-код будет отвергнут перед исполнением) Автоматическое управление памятью (Нет арифметики указателей, невозможно испортить память)

23 © Luxoft Training 2012 Безопасность Верификация байт-кода. (Некорректный байт-код будет отвергнут перед исполнением) Автоматическое управление памятью (Нет арифметики указателей, невозможно испортить память) Встроенный механизм управления правами (Можно запустить код «с ограничениями», например без доступа к файлам, без сети или создания потоков). И это невозможно обойти. Java сильно типизированный язык (Позволяет отловить большинство ошибок связанных с типами на этапе компиляции)

24 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc

25 © Luxoft Training 2012 Java – это не только язык программирования, но и платформа, которая включает в себя: Язык Java Виртуальная машина Java Cистемная библиотека (JRE) Инструментарий разработки (JDK) Платформа Java

26 © Luxoft Training 2012 Общего назначения Apache Commons, Google Guava, Joda Time... Библиотеки Логирование SL4J, Log4J, jLo, LogBack, Logging toolkit... Тестирование Junit, TestNG, EasyMock, Mockito.. …. Java – это еще и огромное количество библиотек:

27 © Luxoft Training 2012 Apache ANT Утилита для автоматизации процесса сборки программного продукта. Является платформонезависимым аналогом утилиты make Системы сборки Apache Ivy Apache Maven Позволяет разработчику управлять зависимостями java библиотек при компиляции и развертывании java приложений т.е. автоматизировать сборку приложения в области закачки нужных java библиотек Мощный инструмент по «управлению» проектом.

28 © Luxoft Training 2012 Eclipse IDE Свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation. Среды разработки NetBeans Intelij IDEA Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков-энтузиастов. Коммерческая интегрированная среда разработки программного обеспечения на многих языках программирования.

29 © Luxoft Training 2012 Eclipse IDE Свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation. Среды разработки NetBeans Intelij IDEA Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков-энтузиастов. Коммерческая интегрированная среда разработки программного обеспечения на многих языках программирования. Для чего нужны среды разработки?

30 © Luxoft Training 2012 Виртуальная машина Существуют реализации JVM, написанные для всех современных ОС. JVM, соответствующая спецификации SUN может запускать любой class файл. JVM управляет загрузкой и работой программы, предоставляет стек и другие области памяти, реализует сборщик мусора и другие функции. JVM выступает абстракцией между языком Java и платформой, на которую установлена Java.

31 © Luxoft Training 2012 Oracle Java Реализация Java - официальная реализация

32 © Luxoft Training 2012 Oracle Java Реализация Java OpenJDK Iced Tea JRockit … и еще несколько десятков. - официальная реализация

33 © Luxoft Training 2012 Языки запускаемые на JVM Groovy JRuby Jython Clojure Scala Kotlin Rhino Ceylon Phantom И

34 © Luxoft Training 2012 Тонкая настройка JVM Можно настроить JVM для повышения производительности сервера. Переменная JAVA_OPTS для параметров виртуальной машины Начальный размер кучи -XmsIm, I – в мегабайтах Максимальный размер кучи -XmxIm, I – в мегабайтах

35 © Luxoft Training 2012 Тонкая настройка JVM Параметры настройки разделены на 4 категории: Внимание! Более подробно на jsp html Поведенческие параметры -XX:-UseSerialGC-XX:+UseThreadPriorities Параметры сборки мусора -XX:MaxGCPauseMillis=n Параметры производительности -XX:MaxHeapFreeRatio=70 Параметры отладки -XX:-HeapDumpOnOutOfMemoryError -XX:MaxHeapFreeRatio=70 -XX:-CITime

36 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc

37 © Luxoft Training 2012

38 © Luxoft Training 2012 Версионность Изменениями управляет Java Community Process (JCP) Изменения в версиях затрагивали как сам язык, так и саму платформу. Количество классов в системной библиотеке выросло от нескольких сотен до нескольких тысяч. Всегда сохранялся прицеп backward compatibility.

39 © Luxoft Training 2012 Версионность JDK 1.0 (January 23, 1996) JDK 1.1 (February 19, 1997) J2SE 1.2 (December 8, 1998) J2SE 1.3 (May 8, 2000) J2SE 1.4 (February 6, 2002) J2SE 5.0 (September 30, 2004) Java SE 6 (December 11, 2006) Java SE 7.0 (July 7, 2011) Java SE 8.0 (в разработке)

40 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc

41 © Luxoft Training 2012 Java SE (Standard Edition) Стандартная версия. Отлично подходит для десктопных приложений. Направления Java

42 © Luxoft Training 2012 Java SE (Standard Edition) Стандартная версия. Отлично подходит для десктопных приложений. Направления Java Java ME (Micro Edition) Урезанная версия Java. Предназначена для устройств с ограниченными ресурсами.

43 © Luxoft Training 2012 Java SE (Standard Edition) Стандартная версия. Отлично подходит для десктопных приложений Направления Java Java ME (Micro Edition) Урезанная версия Java. Предназначена для устройств с ограниченными ресурсами. Java EE (Enterprise Edition) Для корпоративных приложений масштаба предприятия.

44 © Luxoft Training 2012 Java FX Платформа, предназначеная для создания приложений с мультимедийным контентом и графическим интерфейсом пользователя (RIA). Направления Java

45 © Luxoft Training 2012 Java FX Платформа, предназначеная для создания приложений с мультимедийным контентом и графическим интерфейсом пользователя (RIA). Направления Java Java TV (Television) Основанная на JavaME версия, предназначенная для простой, быстрой и безопасной разработки Java-приложений, работающих на телевизионных приемниках.

46 © Luxoft Training 2012 Java FX Платформа, предназначеная для создания приложений с мультимедийным контентом и графическим интерфейсом пользователя (RIA). Направления Java Java TV (Television) Основанная на JavaME версия, предназначенная для простой, быстрой и безопасной разработки Java-приложений, работающих на телевизионных приемниках. Java Card Технология предназначенная для создания приложений очень ограниченных в ресурсах, которые запускаются в смарт-картах.

47 © Luxoft Training 2012 Client mode Быстрый вход на максимальную производительность. Режимы работы Java

48 © Luxoft Training 2012 Client mode Быстрый вход на максимальную производительность. Режимы работы Java Server mode Долго накапливает данные о приложении, производит оптимизацию самых HotSpot точек (20%). В результате сбалансированный и оптимизированный код. Автоматичесий переход при: 2 или более CPU ядер 2 или более GB ОЗУ java -client java -server

49 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc

50 © Luxoft Training 2012 JDK можно скачать с сайта Обзор JDK JDK распространяется как инсталятор. По умолчанию ставится в C:\Program Files\Java. Можно установить только JRE.

51 © Luxoft Training 2012 javac – компилятор языка Java, соответствующей спецификации JLS и возвращающий байт-код спецификации JVM. java – загрузчик Java приложений, реализация JVM. jar – архиватор.class файлов. javadoc генератор документации. jdb – отладчик Обзор JDK

52 © Luxoft Training 2012 javap – дизассемблер class файлов. jvisualvl – профайлер. jarsigner – инструмент для подписи jar-файлов. jconsole – графический инструмент мониторинга для контроля JVM. Обзор JDK Внимание! Под большинство утилит есть API для программного вызова. Например, javac ToolProvider.getSystemJavaCompiler()

53 © Luxoft Training 2012 Java Compiler Компилирует исходый код (*.java) в байт-код (*.class) javac javac MyClass.java OneMoreClass.java javac -d classes MyClass.java javac -classpath library.jar -d classes MyClass.java javac -version

54 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc

55 © Luxoft Training 2012

56 © Luxoft Training 2012

57 © Luxoft Training 2012 Каждый файл исходного кода на java должен иметь расширение «.java». Имя файла должно совпадать с именем public класса. Процесс разработки и запуска Java coding convensions

58 © Luxoft Training 2012

59 © Luxoft Training 2012

60 © Luxoft Training 2012

61 © Luxoft Training 2012

62 © Luxoft Training 2012 Процесс разработки и запуска public class HelloWorld { public static void main(String[] args) { if (args != null) { for (int i = 0; i < args.length; i++) { System.out.println(args[i]); }

63 © Luxoft Training 2012 Для компиляции файла исходного кода необходимо выполнить утилиту javac из набора JDK: В случае успешной компиляции генерируется соответствующий.class (например, HelloWorld.class), содержащий скомпилированный байт-код исходного файла. Процесс разработки и запуска javac HelloWorld.java

64 © Luxoft Training 2012 Cкомпилированный файл можно запустить в JVM используя команду: Процесс разработки и запуска java HelloWorld Внимание! Аргумент утилиты java – имя класса, а не имя файла с байт-кодом.

65 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc

66 © Luxoft Training 2012 JavaDoc – набор правил описания комментариев, а также специальных директив в файле исходного кода, позволяющий с помощью утилиты javadoc, входящей в JDK, cгенерировать HTML документацию, описывающую: JavaDoc Пакет Описание класса, его поля и методы.

67 © Luxoft Training 2012 Автор Класс, Версия, не больше одного Класс, интерфейс Тег ОписаниеПрименим С какой версии доступно Ссылка на другое место в документации Входной параметр метода Описание возвращаемого значения Возвращаемое Описание выбрасываемого исключения Описание устаревших блоков кода Все

68 © Luxoft Training 2012 JavaDoc javadoc HelloWorld.java Сгенерированыый файл – index.html

69 © Luxoft Training 2012 JavaDoc Документация слишком часто устаревает Не забыть описать краевые случаи Как поведет себя метод, если на входе будет null Модификация параметров метода... Описание параметров.

70 © Luxoft Training 2012 Упражнение 1 Установка и настройка рабочей среды Упражнение 2 Анализ и запуск первого Java-приложения

71 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Отладка приложений Использование комментариев в JavaDoc