Слайд 2История
Начало разработке языка было положено в 1991 г. Джеймсом Гослингом и его
![История Начало разработке языка было положено в 1991 г. Джеймсом Гослингом и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-1.jpg)
напарниками Патриком Ноутоном, работавшими в компании Sun Microsystems, Inc.
Изначально язык создавался для программирования бытовых электронных устройств.
Разработка первой работающей версии заняла 18 месяцев.
Первым названием языка было Oak (Дуб).
В 1995 был переименован в Java.
23 мая 1995 г. - Компания Sun официально представила Java на выставке SunWorld '95.
Слайд 3Причины создания
Патрик Ноутон, Джеймс Гослинг работали над проектом "Green", целью которого было
![Причины создания Патрик Ноутон, Джеймс Гослинг работали над проектом "Green", целью которого](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-2.jpg)
разработать язык для программирования бытовых электронных устройств (например, контроллеров, для переключения каналов телевидения).
Бытовые устройства потребляют мало энергии (отсюда и кодовое название Green) и имеют небольшие микросхемы памяти.
Следовательно, программы, написанные для них, должны быть небольшими.
Кроме того, была поставлена задача создания кода, который единожды читается на любой машине, а не пишется под конкретное устройство.
Так и родился Java.
Слайд 4Основные качества:
Простота и мощь;
Безопасность;
Объектная ориентированность;
Надежность;
Интерактивность;
Архитектурная независимость;
![Основные качества: Простота и мощь; Безопасность; Объектная ориентированность; Надежность; Интерактивность; Архитектурная независимость;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-3.jpg)
Возможность интерпретации;
Высокая производительность;
Легкость в изучении.
Слайд 5Простота и мощь
В языке Java для решения задачи имеется совсем немного вариантов.
![Простота и мощь В языке Java для решения задачи имеется совсем немного](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-4.jpg)
Стремление к простоте зачастую приводило к созданию неэффективных и невыразительных языков типа командных интерпретаторов.
Java к числу таких языков не относится – для Вас вся мощность ООП и библиотек классов.
Слайд 6Надежность
В Java накладывается ряд ограничений в нескольких наиболее важных областях, что вынуждает
![Надежность В Java накладывается ряд ограничений в нескольких наиболее важных областях, что](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-5.jpg)
разработчиков выявлять ошибки на ранних этапах создания программы.
Java избавляет от необходимости беспокоится по поводу наиболее часто встречающихся ошибок программирования
Java строго типизированный язык, и проверка кода выполняется во время компиляции
Проверка кода в Java выполняется и во время выполнения программы, в результате чего многие трудно обнаруживаемые программные ошибки, часто приводящие к с трудом воспроизводимым ситуациям, попросту невозможны
Предсказуемость кода в разных ситуациях, одна из особенностей Java
Слайд 7Независимость от архитектуры
Основной задачей, которую ставили перед собой разработчики Jаvа, было обеспечение
![Независимость от архитектуры Основной задачей, которую ставили перед собой разработчики Jаvа, было](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-6.jpg)
долговечности и переносимости кода.
Одной из главных трудностей, стоявших перед разработчиками, когда они создавали Jаvа, было отсутствие всяких гарантий что код, написанный сегодня, будет успешно выполняться завтра - даже на одном и том же компьютере.
Слайд 8Независимость от архитектуры
Операционные системы и процессоры постоянно совершенствуются, и любые изменения в
![Независимость от архитектуры Операционные системы и процессоры постоянно совершенствуются, и любые изменения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-7.jpg)
основных системных ресурсах могут стать причиной неработоспособности программ.
Пытаясь каким-то образом изменить это положение, разработчики приняли ряд жестких решений в самом языке и виртуальной машине Java. Они поставили перед собой следующую цель: "написано однажды, выполняется везде, в любое время и всегда". И эта цель была в значительной степени достигнута.
Слайд 10Java Virtual Machine
Виртуальная машина - это программное обеспечение, основанное на понятиях и
![Java Virtual Machine Виртуальная машина - это программное обеспечение, основанное на понятиях](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-9.jpg)
идее воображаемого компьютера, который имеет логический набор команд, определяющих операции этого компьютера.
Это, можно сказать, небольшая операционная система.
Она формирует необходимый уровень абстракции, где достигается независимость от платформы и используемого оборудования.
Исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java (javac).
JVM может также использоваться для выполнения программ, написанных на других языках программирования. Например, исходный код на языке Ada (названный в честь первой программистки - Ады Лавлэйс) может быть откомпилирован в байт-код Java, который затем может выполниться с помощью JVM.
Слайд 11Java Virtual Machine
JVM является ключевым компонентом платформы Java.
Так как виртуальные машины
![Java Virtual Machine JVM является ключевым компонентом платформы Java. Так как виртуальные](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-10.jpg)
Java доступны для многих аппаратных и программных платформ, Java может рассматриваться и как связующее программное обеспечение, и как самостоятельная платформа. Использование одного байт-кода для многих платформ позволяет описать Java как «скомпилировано однажды, запускается везде» (compile once, run anywhere).
Виртуальные машины Java обычно содержат Интерпретатор байт-кода, однако, для повышения производительности во многих машинах также применяется JIT (Just-in-time) - компиляция часто исполняемых фрагментов байт-кода в машинный код.
Слайд 13Интерпретация
Необычайная способность Java исполнять свой код на любой из поддерживаемых платформ достигается
![Интерпретация Необычайная способность Java исполнять свой код на любой из поддерживаемых платформ](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-12.jpg)
тем, что ее программы транслируются в некое промежуточное представление, называемое байт-кодом (bytecode).
Байт-код, в свою очередь, может интерпретироваться в любой системе, в которой есть среда времени выполнения Java.
Большинство ранних систем, в которых пытались обеспечить независимость от платформы, обладало огромным недостатком — потерей производительности (Basic, Perl). Несмотря на то, что в Java используется интерпретатор, байт-код легко переводится непосредственно в “родные” машинные коды (Just In Time compilers) “на лету”. При этом достигается весьма высокая производительность.
Слайд 14Объектная ориентированность
Java выделяется четким, практичным и прагматичным подходом к объектам.
Объектная модель Java
![Объектная ориентированность Java выделяется четким, практичным и прагматичным подходом к объектам. Объектная](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-13.jpg)
проста и легко расширяема.
В то же время такие элементарные типы данных, как целочисленные, сохраняются в виде высокопроизводительных компонентов, не являющихся объектами.
Слайд 15Организация оперативной памяти в Java
![Организация оперативной памяти в Java](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-14.jpg)
Слайд 16Организация оперативной памяти в Java
В C++ есть прямой доступ к памяти, в
![Организация оперативной памяти в Java В C++ есть прямой доступ к памяти,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-15.jpg)
Java – нет;
Виртуальная машина Java самостоятельно управляет объектами в памяти;
Сборщик мусора избавляет программиста Java от проблем управления памятью вручную. Он удаляет старые объекты, на которых уже нет ссылок в программе. Периодичность его работы динамична и заранее неизвестна;
Запись объектов в память происходит при выполнении программы, а не при написании кода.
Слайд 17Безопасность
Программы на Java не могут вызывать глобальные функции и получать доступ к
![Безопасность Программы на Java не могут вызывать глобальные функции и получать доступ](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-16.jpg)
произвольным системным ресурсам, что обеспечивает в Java уровень безопасности, недоступный для других языков.
Слайд 18Простота изучения
Объектная модель в Java одновременно проста и выразительна, что позволяет быстро
![Простота изучения Объектная модель в Java одновременно проста и выразительна, что позволяет](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-17.jpg)
освоиться с объектно-ориентированным стилем создания программ.
Среда Java содержит встроенный набор ключевых классов, содержащих основные абстракции реального мира, с которыми будет иметь дело Ваша программа.
Основой популярности Java стали классы-абстракции, сделавшие его языком, действительно независимым от платформы.
Слайд 19Компоненты Java
JDK
JRE
Javac
Libs
JVM
Code libs
Docs
Utilities
![Компоненты Java JDK JRE Javac Libs JVM Code libs Docs Utilities](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-18.jpg)
Слайд 20Компоненты Java
JDK (Java Development Kit) - комплект разработчика приложений на языке Java,
![Компоненты Java JDK (Java Development Kit) - комплект разработчика приложений на языке](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-19.jpg)
включающий в себя компилятор, стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему JRE.
JRE (Java Runtime Environment) - минимальная реализация виртуальной машины, необходимая для исполнения Java -приложений, без компилятора и других средств разработки. Состоит из виртуальной машины и библиотек Java классов.
JVM (Java Virtual Machine) - виртуальная машина Java - основная часть исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java (javac). JVM обеспечивает платформо-независимый способ выполнения кода. Программисты могут писать код не задумываясь как и где он будет выполняться.
Слайд 21Основные библиотеки
java.lang - Классы ядра языка (типы, работа со строками, тригонометрические функции,
![Основные библиотеки java.lang - Классы ядра языка (типы, работа со строками, тригонометрические](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-20.jpg)
обработка исключений)
java.io - Классы для различных типов ввода-вывода
java.system - Классы для работы с системой, консолью/командной строкой и т.д.
java.math - Классы для арифметических операций произвольной точности
java.net - Классы для работы в сети Интернет (сокеты, протоколы, URL)
java.util - Разноообразные полезные типы данных (стеки, словари, хэш-таблицы), даты, генератор случайных чисел
Слайд 22Классификация платформ Java
Java SE — Java Standard Edition, основное издание Java, содержит компиляторы,
![Классификация платформ Java Java SE — Java Standard Edition, основное издание Java,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-21.jpg)
API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.
Java EE — Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия.
Java ME — Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например, в мобильных телефонах, КПК, встроенных системах;
Слайд 23Установка Java
Скачать Java с официального сайта https://www.oracle.com/technetwork/java/javase/downloads/index.html
![Установка Java Скачать Java с официального сайта https://www.oracle.com/technetwork/java/javase/downloads/index.html](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-22.jpg)
Слайд 24Установка Java
Создать новую переменную среду с именем JAVA_HOME, которая будет ссылаться на
![Установка Java Создать новую переменную среду с именем JAVA_HOME, которая будет ссылаться](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-23.jpg)
директорию, в которую была произведена установка java.
Слайд 25Установка Java
Добавить переменную JAVA_HOME в Path:
![Установка Java Добавить переменную JAVA_HOME в Path:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-24.jpg)
Слайд 26Установка Java
Проверить успешность установки вызовом команды java -version.
![Установка Java Проверить успешность установки вызовом команды java -version.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-25.jpg)
Слайд 27Структура программы на Java
Любая программа на Java состоить из классов, которые, по
![Структура программы на Java Любая программа на Java состоить из классов, которые,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-26.jpg)
мере надобности, а иногда и все сразу, загружаются в память JVM.
Классы описываются по определенному шаблону и имеют следующие основные блоки:
Область подключения внешних пакетов
Объявление класса
Поля класса
Описание конструктора класса
Описание методов класса
Слайд 29Структура программы на Java
В начале файла идет секция с подключенными внешними пакетами
![Структура программы на Java В начале файла идет секция с подключенными внешними](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-28.jpg)
с помощью директивы import, после которой идут названия подключаемых пакетов и классов. Пакеты представляют собой организацию классов и интерфейсов в общие группы или блоки.
Каждая строка завершается точкой с запятой, а каждый блок кода помещен в фигурные скобки.
Далее идет определение класса программы. Классы объявляются следующим образом: модификатор доступа public, указывающий, что данный класс будет доступен из любого места программы и мы сможем запустить его из командной строки; затем идет ключевое слово class, а потом – название класса и тело самого класса в фигурных скобках.
Слайд 30Структура программы на Java
Классы – это «кирпичики», из который строится программа на
![Структура программы на Java Классы – это «кирпичики», из который строится программа](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-29.jpg)
Java. К именам классов (идентификаторам) предъявляются определенные требования: именем класса может быть произвольная последовательность алфавитных и цифровых символов, а также символа подчеркивания, однако при этом названия не должны начинаться с цифры; идентификаторы не должны быть представлены зарезервированными ключевыми словами (такими, как class, int и т.д.)
Класс может содержать различные переменные и методы.
Выполнение любой программы начинается с метода main, который обязательно должен присутствовать в коде.
Слайд 31Структура программы на Java
Метод main также имеет модификатор public.
Слово static указывает,
![Структура программы на Java Метод main также имеет модификатор public. Слово static](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-30.jpg)
что метод main – статический, а слово void – что он не возвращает никакого значения.
Все это станет более понятно чуть позже ☺
Далее в скобках у нас идут параметры метода – String[] args – это массив args, который хранит значения типа String (строкового). В данном случае они нам пока не нужны, но в реальной программе – это те строковые параметры, которые передаются при запуске программы из командной строки.
В фигурных скобках располагается тело метода, содержащее инструкции, которые будут выполнятся при запуске программы.
Слайд 32Структура программы на Java
В начале тела класса объявляем переменную name, которая будет
![Структура программы на Java В начале тела класса объявляем переменную name, которая](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-31.jpg)
хранить строку (т.е. тип String). Java является регистрозависимым языком, поэтому следующие два объявления переменных будут не эквивалентны: String name и String Name. В данном случае будут объявлены 2 разные переменные.
Далее идет создания переменной консоли, которая даст возможность взаимодействовать с консолью: Console con = System.console(); . Так как класс Console находится в библиотеке классов в пакете java.io, то чтобы его использовать, необходимо этот пакет подключить, используя директиву import: import java.io.Console.
Слайд 33Структура программы на Java
Все это станет более понятно чуть позже ☺
Далее в
![Структура программы на Java Все это станет более понятно чуть позже ☺](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-32.jpg)
скобках у нас идут параметры метода – String[] args – это массив args, который хранит значения типа String (строкового). В данном случае они нам пока не нужны, но в реальной программе – это те строковые параметры, которые передаются при запуске программы из командной строки.
В фигурных скобках располагается тело метода, содержащее инструкции, которые будут выполнятся при запуске программы.
Слайд 34Создание первой программы
Чтобы создать простейшую программу на Java вы должны первым делом
![Создание первой программы Чтобы создать простейшую программу на Java вы должны первым](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-33.jpg)
создать текстовый файл с именем Hello.java, и следующим содержанием:
Слайд 35Создание первой программы
Далее необходимо в консоли набрать команду вида:
javaс Hello.java
Для успешного выполнения
![Создание первой программы Далее необходимо в консоли набрать команду вида: javaс Hello.java](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-34.jpg)
этой команды вы должны находиться в том же каталоге, что и ваш файл.
Слайд 36Создание первой программы
В результате выполнения данной команды рядом с вашим файлом должен
![Создание первой программы В результате выполнения данной команды рядом с вашим файлом](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-35.jpg)
появиться другой файл с таким же именем и с расширением .class. Если он был успешно создан, программу можно запускать.
Делается это командой:
java Hello
Слайд 37Создание первой программы
Если вы нигде не допустили ошибок, в консоли вы должны
![Создание первой программы Если вы нигде не допустили ошибок, в консоли вы должны увидеть следующий текст:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-36.jpg)
увидеть следующий текст:
Слайд 38Среды разработки на Java
Интегри́рованная среда́ разрабо́тки (англ. Integrated development environment — IDE)
![Среды разработки на Java Интегри́рованная среда́ разрабо́тки (англ. Integrated development environment —](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-37.jpg)
— комплекс программных средств, используемый программистами для разработки программного обеспечения, включающий в себя:
редактор кода,
компилятор и/или интерпретатор,
средства автоматизации сборки,
отладчик.
Слайд 39Наиболее популярные среды разработки на Java
IntelliJ IDEA
Одна из самых функциональных сред
![Наиболее популярные среды разработки на Java IntelliJ IDEA Одна из самых функциональных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-38.jpg)
для java разработки, созданная компанией JetBrains.
Оснащена системой интеллектуальной помощи в написании кода, включает в себя огромное количество плагинов и надстроек под любую задачу, функцию автодополнения, имеет современный интерфейс.
Существуют две версии IntelliJ — Community Edition, которая является бесплатной, и Ultimate Edition, которая полностью признана и требует использования оплачиваемых лицензий.
Слайд 40Наиболее популярные среды разработки на Java
Eclipse
Одна из самых популярных IDE, не только
![Наиболее популярные среды разработки на Java Eclipse Одна из самых популярных IDE,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-39.jpg)
для Java, но и для C ++ с PHP, созданная компанией Eclipse Foundation.
Это инструмент с открытым исходным кодом, имеющий отличное сообщество разработчиков.
В нем имеется огромная библиотека плагинов, созданная самими пользователями, а также - множество версий, самая популярная из которых — Eclipse Oxygen.
Является бесплатной и не требует лицензии.
Слайд 41Наиболее популярные среды разработки на Java
Среди прочих можно выделить также:
NetBeans
JDeveloper
Dr. Java
BlueJ
jCreator
jGrasp
Greenfoot
Codenvy (облачная
![Наиболее популярные среды разработки на Java Среди прочих можно выделить также: NetBeans](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-40.jpg)
IDE)
и др.
Слайд 42Что будем использовать?
Для наших целей будем использовать IntelliJ IDEA Community версию.
Скачать IntelliJ
![Что будем использовать? Для наших целей будем использовать IntelliJ IDEA Community версию.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-41.jpg)
IDEA Community можно с официального сайта пройдя по ссылке https://www.jetbrains.com/idea/download/#section=windows
Далее необходимо запустить установочный файл и выполнить все шаги в открывшемся окне установки.
Слайд 43Создаем первый проект в IntelliJ IDEA Community
Для наших целей будем использовать
![Создаем первый проект в IntelliJ IDEA Community Для наших целей будем использовать](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-42.jpg)
IntelliJ IDEA Community версию.
Скачать IntelliJ IDEA Community можно с официального сайта пройдя по ссылке https://www.jetbrains.com/idea/download/#section=windows
Далее необходимо запустить установочный файл и выполнить все шаги в открывшемся окне установки.
Слайд 44Создаем первый проект в IntelliJ IDEA Community
В верхнем левом углу жмем
![Создаем первый проект в IntelliJ IDEA Community В верхнем левом углу жмем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-43.jpg)
File / New / Project и в открывшемся окне New Project выбираем Java.
Слайд 45Создаем первый проект в IntelliJ IDEA Community
Жмем Next, оставляем все как
![Создаем первый проект в IntelliJ IDEA Community Жмем Next, оставляем все как](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-44.jpg)
есть в следующем окне и снова жмем Next.
На диске D: создаем папку и называем ее firstProject.
В открывшемся окне указываем имя проекта в поле Project Name - MyFirstProject
В поле Project Location указываем созданную Вами директорию, куда будем сохранять проект - firstProject.
Слайд 46Создаем первый проект в IntelliJ IDEA Community
![Создаем первый проект в IntelliJ IDEA Community](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874462/slide-45.jpg)