Курс java-2016. Занятие 01. Введение в java как технологию
TRANSCRIPT
Курс по Java, 2016
Введение в Java как технологию
Занятие 01
Курс по Java, 2016
• Дата выхода: 23 мая 1995 года (Oak)• Изначальное предназначение: язык для
бытовых электронных устройств• Версия 1.0: 26 августа 1996 года (Java)• Итоговое предназначение: язык для
разработки клиентских и серверных приложений
История Java
Курс по Java, 2016
• Синтаксис похож на С++ – несложно изучить, если знаешь С/С++
• Автоматическая сборка мусора – переменные уничтожаются, когда больше не нужны
• Строгая статическая типизация – контроль типов на этапе компиляции
Особенности языка
Курс по Java, 2016
• Компилируется в промежуточный формат – байт-код
• Наличие интерфейсов – только заголовки методов без реализации
• Есть возможность анализа и изменений запущенного байт-кода во время работы приложения – reflection
Особенности языка
Курс по Java, 2016
• Виртуальная машина (JVM) – можно запускать код везде, где она есть
• JIT – компиляция в машинный код для оптимизации производительности (идея из Lisp и Smalltalk)
• HotSpot – реализация более оптимизированная, чем трансляция всего байт-кода
Особенности платформы
Курс по Java, 2016
• Есть возможность анализа параметров запущенного приложения (JConsole, JProfiler и др.)
• Реализации есть для большинства операционных систем
• JVM-based – языки Scala, Clojure и другие• Несколько IDE, в том числе Intellij IDEA от
JetBrains (Россия, Чехия)
Особенности платформы
Курс по Java, 2016
• Большой набор готовых библиотек, например, на Apache Software Foundation
• Система репозиториев и версионирования библиотек Apache Maven
• Универсальный фреймворк для серверных приложений Spring
Особенности платформы
Курс по Java, 2016
Все это позволяет Java уже много лет оставаться одним из самых популярных
языков
Курс по Java, 2016
• Важные данные: финансовое и медицинское ПО, документооборот
• Серверные компоненты для back-end• СУБД – Cassandra, Hadoop и другие• Смарт-карты и другие устройства с
малым объемом памяти• Android и другие мобильные платформы
Где используется
Курс по Java, 2016
• Управление важными данными: финансовое и медицинское ПО, бухгалтерский и кадровый учет, электронный документооборот
• Обработка больших объемов данных• Криптография• Встраиваемые приложения
Какие задачи решает
Курс по 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
Курс по Java, 2016
Основные алгоритмы работы GC:• Serial GC• Parallel GC• CMS GC• G1 GC
Сборка мусора (garbage collection)
Курс по Java, 2016
Serial GC
Курс по Java, 2016
Serial GC
Курс по Java, 2016
• -XX:PermSize – минимальный размер PermGen
• -XX:MaxPermSize – максимальный размер PermGen
• -Xms – минимальный размер Heap• -Xmx – максимальный размер Heap• -XX:NewRatio – размер old generation
кратно большим, чем размер new generation
Конфигурация JVM
Курс по Java, 2016
• -XX:+PrintGCTimeStamps, -XX:+PrintGCDetails и -Xloggc:gc.log JVM печатает дополнительную информацию о сборке мусора в файл gc.log
• -XX:+UseSerialGC• -XX:+UseParallelGC• -XX:+UseParalledlOldGC• -XX:+UseConcMarkSweepGC
Конфигурация JVM
Курс по 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
Курс по 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
Курс по Java, 2016
Из того же каталога, где лежит файл:javac myClass.java – компиляция
java myClass – запуск
java -cp myLib.jar – компиляция программы с дополнительной библиотекой
Компиляция и запуск класса
Курс по Java, 2016
1. Установлена Java SDK 1.7.2. Установлена Intellij IDEA, например, Community Edition.3. Запускается javac и java.4. Написан HelloWorld.java, откомпилирован в консоли и в IDE, запущен в консоли и в IDE.
Что должно быть установлено
Курс по Java, 2016
Написать инвертирование заданного целочисленного массива на Java. Должно получиться 2 класса: тот, в котором функция main, и тот, который инвертирует.
Крайний срок сдачи 22:00 19.03.2016 г. Выполненные задания отправлять на [email protected]
Домашнее задание
Курс по Java, 2016
Emails: [email protected], [email protected]: anna_tarasenkoWeb: 7bits.ru
Вопросы?