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