Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемВадим Горецкий
1 1 © Luxoft Training 2012 Введение в Java Модуль #1
2 2 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc
3 3 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг.
4 4 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг П ервое демонстрационное устройство на новой платформе – PDA Star 7.
5 5 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг П ервое демонстрационное устройство на новой платформе – PDA Star П опытка занять область приставок для кабельного ТВ.
6 6 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг П ервое демонстрационное устройство на новой платформе – PDA Star П опытка занять область приставок для кабельного ТВ Java перефокусировали на разработку апплетов. Язык переименовали в Java.
7 7 © Luxoft Training 2012 История создания В нутренний проект (Green Project) компании Sun Microsystems по созданию платформ для встраиваемых систем. Вместо С++ создали новый язык – Oak. Автор Джэймс Гослинг П ервое демонстрационное устройство на новой платформе – PDA Star П опытка занять область приставок для кабельного ТВ Java перефокусировали на разработку апплетов. Язык переименовали в Java Java Development Kit.
8 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 9 © Luxoft Training 2012 История создания
10 10 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc
11 11 © Luxoft Training 2012 Особенности Java Простота и наглядность Переносимость Многопоточность Сборка мусора Безопасность
12 12 © Luxoft Training 2012 Простота и наглядность Изначальная объектно-ориентированность языка. Необходимо избежать сложность существующих языков, упростив синтаксис, но сохранив мощь. Необходимо дать пользователю возможность создавать гибкий, чистый код приложения любого размера.
13 13 © Luxoft Training 2012 Переносимость Подход С/С++ исходный код машинный код процессор Программа работает только на той платформе, под которую скомпилирована.
14 14 © Luxoft Training 2012 Переносимость Подход С/С++ исходный код машинный код процессор Программа работает только на той платформе, под которую скомпилирована. Подход Java исходный код байт код ВМ Программа работает на любой платформе где есть ВМ Java Write once, run anyware! ( Windows, Linux, Solaris, NetWare, Mac OS ) ВМ процессор
15 15 © Luxoft Training 2012 Виртуальная машина и байт-код Как быстро работает виртуальная машина?
16 16 © Luxoft Training 2012 Виртуальная машина и байт-код Интерпретация байт кода медленнее выполнения аналогичного машинного кода раз :-( Как быстро работает виртуальная машина?
17 17 © Luxoft Training 2012 Виртуальная машина и байт-код Интерпретация байт кода медленнее выполнения аналогичного машинного кода раз :-( Как быстро работает виртуальная машина? … но появилась Just-In-Time компиляция … :-) ВМ компилирует байт-код в машинный. начиная с версии JDK 1.1
18 18 © Luxoft Training 2012 Виртуальная машина и байт-код Интерпретация байт кода медленнее выполнения аналогичного машинного кода раз :-( Как быстро работает виртуальная машина? … но появилась Just-In-Time компиляция … :-) ВМ компилирует байт-код в машинный. начиная с версии JDK 1.1 … и HotSpot :-) Адаптивный оптимизирующий JIT-компилятор начиная с версии JDK 1.3
19 19 © Luxoft Training 2012 Сборка мусора Подход С/С++ выделил память поработал управление памятью ложится на плечи программиста управление памятью ведет к большому числу ошибок освободил память
20 20 © Luxoft Training 2012 Сборка мусора Подход С/С++ выделил память поработал управление памятью ложится на плечи программиста управление памятью ведет к большому числу ошибок Подход Java ВМ сама занимается освобождение памяти нет ошибок, связанных с памятью освободил память выделил память поработалзабыл
21 21 © Luxoft Training 2012 Многопоточность и распределенное программирование Многопоточность встроенная поддержка потоков богатая библиотека примитивов синхронизации Распределенность встроенные сетевые возможности пересылка данных и объектов по сети работа с удаленными объектами (RMI)
22 22 © Luxoft Training 2012 Безопасность Верификация байт-кода. (Некорректный байт-код будет отвергнут перед исполнением) Автоматическое управление памятью (Нет арифметики указателей, невозможно испортить память)
23 23 © Luxoft Training 2012 Безопасность Верификация байт-кода. (Некорректный байт-код будет отвергнут перед исполнением) Автоматическое управление памятью (Нет арифметики указателей, невозможно испортить память) Встроенный механизм управления правами (Можно запустить код «с ограничениями», например без доступа к файлам, без сети или создания потоков). И это невозможно обойти. Java сильно типизированный язык (Позволяет отловить большинство ошибок связанных с типами на этапе компиляции)
24 24 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc
25 25 © Luxoft Training 2012 Java – это не только язык программирования, но и платформа, которая включает в себя: Язык Java Виртуальная машина Java Cистемная библиотека (JRE) Инструментарий разработки (JDK) Платформа Java
26 26 © Luxoft Training 2012 Общего назначения Apache Commons, Google Guava, Joda Time... Библиотеки Логирование SL4J, Log4J, jLo, LogBack, Logging toolkit... Тестирование Junit, TestNG, EasyMock, Mockito.. …. Java – это еще и огромное количество библиотек:
27 27 © Luxoft Training 2012 Apache ANT Утилита для автоматизации процесса сборки программного продукта. Является платформонезависимым аналогом утилиты make Системы сборки Apache Ivy Apache Maven Позволяет разработчику управлять зависимостями java библиотек при компиляции и развертывании java приложений т.е. автоматизировать сборку приложения в области закачки нужных java библиотек Мощный инструмент по «управлению» проектом.
28 28 © Luxoft Training 2012 Eclipse IDE Свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation. Среды разработки NetBeans Intelij IDEA Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков-энтузиастов. Коммерческая интегрированная среда разработки программного обеспечения на многих языках программирования.
29 29 © Luxoft Training 2012 Eclipse IDE Свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation. Среды разработки NetBeans Intelij IDEA Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков-энтузиастов. Коммерческая интегрированная среда разработки программного обеспечения на многих языках программирования. Для чего нужны среды разработки?
30 30 © Luxoft Training 2012 Виртуальная машина Существуют реализации JVM, написанные для всех современных ОС. JVM, соответствующая спецификации SUN может запускать любой class файл. JVM управляет загрузкой и работой программы, предоставляет стек и другие области памяти, реализует сборщик мусора и другие функции. JVM выступает абстракцией между языком Java и платформой, на которую установлена Java.
31 31 © Luxoft Training 2012 Oracle Java Реализация Java - официальная реализация
32 32 © Luxoft Training 2012 Oracle Java Реализация Java OpenJDK Iced Tea JRockit … и еще несколько десятков. - официальная реализация
33 33 © Luxoft Training 2012 Языки запускаемые на JVM Groovy JRuby Jython Clojure Scala Kotlin Rhino Ceylon Phantom И
34 34 © Luxoft Training 2012 Тонкая настройка JVM Можно настроить JVM для повышения производительности сервера. Переменная JAVA_OPTS для параметров виртуальной машины Начальный размер кучи -XmsIm, I – в мегабайтах Максимальный размер кучи -XmxIm, I – в мегабайтах
35 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 36 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc
37 37 © Luxoft Training 2012
38 38 © Luxoft Training 2012 Версионность Изменениями управляет Java Community Process (JCP) Изменения в версиях затрагивали как сам язык, так и саму платформу. Количество классов в системной библиотеке выросло от нескольких сотен до нескольких тысяч. Всегда сохранялся прицеп backward compatibility.
39 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 40 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc
41 41 © Luxoft Training 2012 Java SE (Standard Edition) Стандартная версия. Отлично подходит для десктопных приложений. Направления Java
42 42 © Luxoft Training 2012 Java SE (Standard Edition) Стандартная версия. Отлично подходит для десктопных приложений. Направления Java Java ME (Micro Edition) Урезанная версия Java. Предназначена для устройств с ограниченными ресурсами.
43 43 © Luxoft Training 2012 Java SE (Standard Edition) Стандартная версия. Отлично подходит для десктопных приложений Направления Java Java ME (Micro Edition) Урезанная версия Java. Предназначена для устройств с ограниченными ресурсами. Java EE (Enterprise Edition) Для корпоративных приложений масштаба предприятия.
44 44 © Luxoft Training 2012 Java FX Платформа, предназначеная для создания приложений с мультимедийным контентом и графическим интерфейсом пользователя (RIA). Направления Java
45 45 © Luxoft Training 2012 Java FX Платформа, предназначеная для создания приложений с мультимедийным контентом и графическим интерфейсом пользователя (RIA). Направления Java Java TV (Television) Основанная на JavaME версия, предназначенная для простой, быстрой и безопасной разработки Java-приложений, работающих на телевизионных приемниках.
46 46 © Luxoft Training 2012 Java FX Платформа, предназначеная для создания приложений с мультимедийным контентом и графическим интерфейсом пользователя (RIA). Направления Java Java TV (Television) Основанная на JavaME версия, предназначенная для простой, быстрой и безопасной разработки Java-приложений, работающих на телевизионных приемниках. Java Card Технология предназначенная для создания приложений очень ограниченных в ресурсах, которые запускаются в смарт-картах.
47 47 © Luxoft Training 2012 Client mode Быстрый вход на максимальную производительность. Режимы работы Java
48 48 © Luxoft Training 2012 Client mode Быстрый вход на максимальную производительность. Режимы работы Java Server mode Долго накапливает данные о приложении, производит оптимизацию самых HotSpot точек (20%). В результате сбалансированный и оптимизированный код. Автоматичесий переход при: 2 или более CPU ядер 2 или более GB ОЗУ java -client java -server
49 49 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc
50 50 © Luxoft Training 2012 JDK можно скачать с сайта Обзор JDK JDK распространяется как инсталятор. По умолчанию ставится в C:\Program Files\Java. Можно установить только JRE.
51 51 © Luxoft Training 2012 javac – компилятор языка Java, соответствующей спецификации JLS и возвращающий байт-код спецификации JVM. java – загрузчик Java приложений, реализация JVM. jar – архиватор.class файлов. javadoc генератор документации. jdb – отладчик Обзор JDK
52 52 © Luxoft Training 2012 javap – дизассемблер class файлов. jvisualvl – профайлер. jarsigner – инструмент для подписи jar-файлов. jconsole – графический инструмент мониторинга для контроля JVM. Обзор JDK Внимание! Под большинство утилит есть API для программного вызова. Например, javac ToolProvider.getSystemJavaCompiler()
53 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 54 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc
55 55 © Luxoft Training 2012
56 56 © Luxoft Training 2012
57 57 © Luxoft Training 2012 Каждый файл исходного кода на java должен иметь расширение «.java». Имя файла должно совпадать с именем public класса. Процесс разработки и запуска Java coding convensions
58 58 © Luxoft Training 2012
59 59 © Luxoft Training 2012
60 60 © Luxoft Training 2012
61 61 © Luxoft Training 2012
62 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 63 © Luxoft Training 2012 Для компиляции файла исходного кода необходимо выполнить утилиту javac из набора JDK: В случае успешной компиляции генерируется соответствующий.class (например, HelloWorld.class), содержащий скомпилированный байт-код исходного файла. Процесс разработки и запуска javac HelloWorld.java
64 64 © Luxoft Training 2012 Cкомпилированный файл можно запустить в JVM используя команду: Процесс разработки и запуска java HelloWorld Внимание! Аргумент утилиты java – имя класса, а не имя файла с байт-кодом.
65 65 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Использование комментариев в JavaDoc
66 66 © Luxoft Training 2012 JavaDoc – набор правил описания комментариев, а также специальных директив в файле исходного кода, позволяющий с помощью утилиты javadoc, входящей в JDK, cгенерировать HTML документацию, описывающую: JavaDoc Пакет Описание класса, его поля и методы.
67 67 © Luxoft Training 2012 Автор Класс, Версия, не больше одного Класс, интерфейс Тег ОписаниеПрименим С какой версии доступно Ссылка на другое место в документации Входной параметр метода Описание возвращаемого значения Возвращаемое Описание выбрасываемого исключения Описание устаревших блоков кода Все
68 68 © Luxoft Training 2012 JavaDoc javadoc HelloWorld.java Сгенерированыый файл – index.html
69 69 © Luxoft Training 2012 JavaDoc Документация слишком часто устаревает Не забыть описать краевые случаи Как поведет себя метод, если на входе будет null Модификация параметров метода... Описание параметров.
70 70 © Luxoft Training 2012 Упражнение 1 Установка и настройка рабочей среды Упражнение 2 Анализ и запуск первого Java-приложения
71 71 © Luxoft Training 2012 Модуль 1 История создания Особенности Java Понятие платформы Java Версионность Направления Java Стандартный инструментарий Java Процесс разработки и запуска Отладка приложений Использование комментариев в JavaDoc
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.