Курс java-2016. Занятие 01. Введение в java как технологию

22
Курс по Java, 2016 Введение в Java как технологию Занятие 01

Upload: 7bits

Post on 11-Feb-2017

571 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

Введение в Java как технологию

Занятие 01

Page 2: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• Дата выхода: 23 мая 1995 года (Oak)• Изначальное предназначение: язык для

бытовых электронных устройств• Версия 1.0: 26 августа 1996 года (Java)• Итоговое предназначение: язык для

разработки клиентских и серверных приложений

История Java

Page 3: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• Синтаксис похож на С++ – несложно изучить, если знаешь С/С++

• Автоматическая сборка мусора – переменные уничтожаются, когда больше не нужны

• Строгая статическая типизация – контроль типов на этапе компиляции

Особенности языка

Page 4: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• Компилируется в промежуточный формат – байт-код

• Наличие интерфейсов – только заголовки методов без реализации

• Есть возможность анализа и изменений запущенного байт-кода во время работы приложения – reflection

Особенности языка

Page 5: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• Виртуальная машина (JVM) – можно запускать код везде, где она есть

• JIT – компиляция в машинный код для оптимизации производительности (идея из Lisp и Smalltalk)

• HotSpot – реализация более оптимизированная, чем трансляция всего байт-кода

Особенности платформы

Page 6: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• Есть возможность анализа параметров запущенного приложения (JConsole, JProfiler и др.)

• Реализации есть для большинства операционных систем

• JVM-based – языки Scala, Clojure и другие• Несколько IDE, в том числе Intellij IDEA от

JetBrains (Россия, Чехия)

Особенности платформы

Page 7: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• Большой набор готовых библиотек, например, на Apache Software Foundation

• Система репозиториев и версионирования библиотек Apache Maven

• Универсальный фреймворк для серверных приложений Spring

Особенности платформы

Page 8: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

Все это позволяет Java уже много лет оставаться одним из самых популярных

языков

Page 9: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• Важные данные: финансовое и медицинское ПО, документооборот

• Серверные компоненты для back-end• СУБД – Cassandra, Hadoop и другие• Смарт-карты и другие устройства с

малым объемом памяти• Android и другие мобильные платформы

Где используется

Page 10: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• Управление важными данными: финансовое и медицинское ПО, бухгалтерский и кадровый учет, электронный документооборот

• Обработка больших объемов данных• Криптография• Встраиваемые приложения

Какие задачи решает

Page 11: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

Heap (куча) и non-heap (стек) память состоят из 5 областей (memory pools, memory spaces)• Eden Space (heap)• Survivor Space (heap)• Tenured (Old) Generation (heap)• Permanent Generation (non-heap)• Code Cache (non-heap)

Организация памяти в JVM

Page 12: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

Основные алгоритмы работы GC:• Serial GC• Parallel GC• CMS GC• G1 GC

Сборка мусора (garbage collection)

Page 13: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

Serial GC

Page 14: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

Serial GC

Page 15: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• -XX:PermSize – минимальный размер PermGen

• -XX:MaxPermSize – максимальный размер PermGen

• -Xms – минимальный размер Heap• -Xmx – максимальный размер Heap• -XX:NewRatio – размер old generation

кратно большим, чем размер new generation

Конфигурация JVM

Page 16: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

• -XX:+PrintGCTimeStamps, -XX:+PrintGCDetails и -Xloggc:gc.log JVM печатает дополнительную информацию о сборке мусора в файл gc.log

• -XX:+UseSerialGC• -XX:+UseParallelGC• -XX:+UseParalledlOldGC• -XX:+UseConcMarkSweepGC

Конфигурация JVM

Page 17: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

sudo mkdir -p /usr/lib/jvm

sudo mv ./jdk1.8.XX /usr/lib/jvm/

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0/bin/java" 1

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0/bin/javac" 1

sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0/bin/javaws" 1

Установка Java

Page 18: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

sudo chmod a+x /usr/bin/java

sudo chmod a+x /usr/bin/javac

sudo chmod a+x /usr/bin/javaws

sudo chown -R root:root /usr/lib/jvm/jdk1.8.0

sudo update-alternatives --config java

sudo update-alternatives --config javac

sudo update-alternatives --config javaws

Установка Java

Page 19: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

Из того же каталога, где лежит файл:javac myClass.java – компиляция

java myClass – запуск

java -cp myLib.jar – компиляция программы с дополнительной библиотекой

Компиляция и запуск класса

Page 20: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

1. Установлена Java SDK 1.7.2. Установлена Intellij IDEA, например, Community Edition.3. Запускается javac и java.4. Написан HelloWorld.java, откомпилирован в консоли и в IDE, запущен в консоли и в IDE.

Что должно быть установлено

Page 21: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

Написать инвертирование заданного целочисленного массива на Java. Должно получиться 2 класса: тот, в котором функция main, и тот, который инвертирует.

Крайний срок сдачи 22:00 19.03.2016 г. Выполненные задания отправлять на [email protected]

Домашнее задание

Page 22: Курс Java-2016. Занятие 01. Введение в Java как технологию

Курс по Java, 2016

Emails: [email protected], [email protected]: anna_tarasenkoWeb: 7bits.ru

Вопросы?