Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Заочники 2020-2021 / Лекция 1.pptx
Скачиваний:
74
Добавлен:
15.06.2021
Размер:
463.07 Кб
Скачать

Основы Java

МИЭТ, 2019

Лекция 1.

История языка.

Среда разработки и исполнения Java Общая структура простой программы на Java Автодокументирование: JCC и javadoc Введение в обработку ошибок (исключений)

История языка Java

Лекция 1

Изменение отношения стоимости «железа» и «софта»

История языка Java

Лекция 1

Появление любого языка это попытка решить назревшую проблему, которую не удавалось решить другими средствами (языками)

1972 г. - C. 1985 г. - C++. 1995 г. - Java

Начало разработки Java — 1990 г., компания Sun Microsystems, рабочее название Oak

Первоначальное назначение — язык для встраиваемых систем (аппаратуры с микро Процессорным управлением).

Проблема, требующая решения — в связи с многообразием микропроцессоров, неудобно было использовать язык C++ т. к. под каждый микропроцессор потребовалось бы написать свой компилятор.

Идея решения проблемы — Создать специальную более-менее универсальную прослойку между кодом программы и платформой исполнения (процессор + ОС) под названием Виртуальная Машина (VM). Тогда программист пишет код один раз, который преобразуется в промежуточный байт-код, который одинаково исполняется везде, где установлена эта Виртуальная Машина.

История языка Java

Лекция 1

Р а з н и ц а в и с п о л н е н и и J a v a и С + +

С + +

К о д п р о г р а м м ы

. . .

. . .

К о м п и л я ц и я

О б ъ е к т н ы й к о д д л я к о н к р е т н о г о

п р о ц е с с о р а и О С

И с п о л н е н и е

* . с p p

c l . . . * . с p p

* . e x e

J a v a

К о д п р о г р а м м ы

. . .

. . .

К о м п и л я ц и я

Б а й т - к о д д л я в и р т у а л ь н о й м а ш и н ы J a v a

* . ja v a

ja v a c . . . * . ja v a

* . c la s s

И н т е р п р е т а ц и я

ja v a * . c la s s

О б ъ е к т н ы й к о д

J V M

д л я к о н к р е т н о г о

п р о ц е с с о р а и О С

 

И с п о л н е н и е

История языка Java

Лекция 1

Преимущества и недостатки решения с VM

Преимущества

Программы в байт-коде переносимы между платформами, что ускоряет разработку программ

Недостатки

Требуется написать VM для каждой платформы или ОС (=~ написанию компилятора)

Медленная работа программы в VM по сравнению с C/C++

Дополнительные технологии, изначально вошедшие в Java за счет накопленного опыта и новых технологий

Многопоточность в составе языка

«Истинное ООП»

Пакеты, интерфейсы, автодокументирование, сборка мусора

Повышенная защищенность пользователя ПО

(запрещен прямой доступ к адресам памяти)

История языка Java

Лекция 1

Борьба за скорость в JVM

Исполнение кода через интерпретацию медленнее в 10-20 раз (для Java 1.0 1996 г.) по сравнению с аналогичной откомпилированной программой на C или C++. Для преодоления этого ограничения были созданы два инструмента:

1.Just-in-time компиляция — JIT.

1997 г. JDK 1.1.

JRE компилирует программу (целиком или частями) в машинный код, который затем исполняется с «родной» скоростью процессора.

2.Адаптивный оптимизирующий JIT-компилятор - HotSpot.

2000 г. JDK 1.3.

Встроенный профилировщик выделяет ресурсоемкие участки кода (в том числе зависимые от входных данных) и компилирует их на лету в машинный код, который затем исполняется при вызове этих участков.

Вобоих случаях полная компиляция кода программы в машинный не выполняется

Врезультате этих решений Java8 медленнее C++ в 1.5-2 раза.

(по данным тестов на примере матричных вычислений)

История языка Java

Лекция 1

Основные этапы развития языка Java c 1990 по 2019 г.

Год

Событие

Версия

Основные улучшения

 

 

 

 

1990

Старт разработки проекта Oak

 

 

 

 

 

 

1994

Проекту присвоено имя Java

 

 

 

 

 

 

1996

Первый релиз для разработчиков

JDK 1.0

 

 

 

 

 

1997

 

JDK 1.1

JIT — компиляция, профилирование

 

 

 

 

1998

 

J2SE 1.2

 

 

 

 

 

2000

 

J2SE 1.3

HotSpot — адаптивный JIT

 

 

 

 

2002

 

J2SE 1.4

 

 

 

 

 

2004

 

J2SE 5.0

Обобщения (~шаблоны C++), foreach, javadoc

 

 

 

 

2006

 

Java SE6

Java HTTP Server, Скорость вычислений +70%, скорость операций

 

 

 

ввода-вывода x2

2010

Oracle купила Sun Mycrosystems

 

 

 

 

 

 

2011

 

Java SE7

Усовершенствование механизма исключений

 

 

 

 

2014

 

Java SE8

JavaFX в ядре, лямбда-выражения

 

 

 

 

2017

 

Java SE9

Модули на основе Jigsaw, пользовательская JDK

 

 

 

 

2018

Выход на режим — версия в 6 мес

Java SE10

 

 

 

 

 

 

Отказ от JRE

Java SE11

Новый HTTP клиент с поддержкой HTTP/2

 

 

 

 

2019

Платная JDK для конечных

Java SE12

Усовершенствование сборщика мусора

 

пользователей

 

 

 

 

 

 

История языка Java

Лекция 1

Источнки информации по Java

Официальные от Oracle (Sun)

Вся документация от Oracle (версии от 7 до 12) https://docs.oracle.com/en/java/javase/index.html

Структура компонентов платформы JavaSE (удобная визуализация) https://docs.oracle.com/javase/8/docs/

Спецификация языка Java http://docs.oracle.com/javase/specs/jls/se8/html/index.html http://docs.oracle.com/javase/specs/jls/se12/html/index.html

Все стандартные классы Java SE https://docs.oracle.com/javase/8/docs/api/overview-summary.html https://docs.oracle.com/en/java/javase/12/docs/api/index.html

Прочие англоязычные

http://beginnersbook.com

— разные языки в том числе Java

http://javarevisited.blogspot.ru

— описаны сложные вещи

http://www.java-examples.com

— примеры

http://www.java2s.com/Tutorial/

— примеры, сгруппированные по темам и объектам

http://www.onjava.com

— крупный каталог статей и новостей

http://www.javaspecialists.eu

— сборник заметок по практическим ситуациям

http://www.theserverside.com/

— статьи и новости для опытных пользователей

История языка Java

Лекция 1

Русскоязычные источнки информации по Java

Книги

Кей С. Хорстманн

Java. Библиотека профессионала. Том 1. Основы.

Java. Библиотека профессионала. Том 2. Расширенные средства программирования.

Герберт Шилдт

Java *. Руководство для начинающих.

Брюс Эккель

Философия Java.

Видеокурсы

https://www.lektorium.tv. Алексей Владыкин (2012, 2014), Георгий Корнеев (2013); https://www.youtube.com/playlist?list=PLB0276A0A62BDEF06. Юрий Ткач (2014)

Интернет-ресурсы

Справочник

— http://www.darkraha.com/rus/java/

Блог статей

— http://info.javarush.ru

Форум по программированию на Java — http://javatalks.ru

Java + Android, справочник

— http://metanit.com/java/android/

Java + Android, блог

— http://prologistic.com.ua

Форум по программированию

— http://citforum.ru

Общие вопросы

— https://habrahabr.ru

Среда разработки и исполнения Java

Лекция 1

Среда разработки и исполнения Java

1. Загрузить и установить JVM в рамках пакета программ JRE

С 11-ой версии Java JRE отдельно не поставляется. Для выполнения программ нужно устанавливать JDK. Для распространения программ без полной установки JDK с 9-ой версии Java можно использовать утилиту jlink.

2. Установить комплект разработчика - Java Development Kit (JDK)

JDK можно скачать с сайта Oracle по ссылке: http://www.oracle.com/technetwork/java/javase/downloads/.Там-же можно скачать документацию.

С 16 апреля 2019 для использования JVM в составе JDK, конечный пользователь должен оплатить годовую подписку стоимостью от 1000 до 78000 руб в год. Для разработчиков JDK -бесплатен. Выпускаемая Oracle OpenJDK (openjdk.java.net)

почти аналогичная JDK, но имеющая более короткие сроки поддержки, является бесплатной. На базе OpenJDK компанией BellSoft (https://bell-sw.com) собираются бесплатные как для разработчиков, так и для потребителей (клиентов) актуальные релизы Java – Liberica JDK

3. Написать код программы

Исходный код программы на Java, обычные текстовый файл с расширением *.java

4. создать байт-код для JVM

Исходный код компилируется в байт-код командой javac *.java и сохраняется в виде файлов с расширением *.class.

5. Запустить программу на выполнение с помощью команды java *.class

Соседние файлы в папке Заочники 2020-2021