Similar presentations:
Введение в Java
1.
Введение в Java2.
Что такое JAVAJava
объектно-ориентированный
язык
программирования, разработанный компанией Sun
Microsystems.
2
3.
JVM – Java Virtual MachineJava Virtual Machine –
ключевой компонент
платформы Java
3
4.
JDK – Java Development KitJava Development Kit (Open JDK) - бесплатно
распространяемый комплект разработчика
приложений на языке Java, включающий в
себя компилятор Java (javac), стандартные
библиотеки
классов
Java,
примеры,
документацию, различные утилиты и
исполнительную систему Java (JRE).
4
5.
Oracle JDKJava Development Kit (Open JDK) - бесплатно
распространяемый комплект разработчика
приложений на языке Java, включающий в
себя компилятор Java (javac), стандартные
библиотеки
классов
Java,
примеры,
документацию, различные утилиты и
исполнительную систему Java (JRE).
5
6.
JRE – Java Runtime EnvironmentJava Runtime Environment - минимальная
реализация
виртуальной
машины,
необходимая
для
исполнения
Javaприложений.
Состоит из виртуальной машины - Java Virtual
Machine (JVM) и библиотеки Java-классов.
6
7.
Установка Java – часть 1Открыть командную строку.
(Пуск -> Выполнить -> "cmd.exe")
Написать в консоле "java –version”
Смотреть что получилось
7
8.
Установка Java – часть 21. Скачиваем с сайта https://jdk.java.net/11/
2. Предыдущие версии по ссылке:
https://jdk.java.net/archive/
2. Скачивание в формате ZIP, который затем
распаковываем в C:\java\jdk-11.0.2
8
9.
Установка Java – часть 3Устанавливаем системные переменные среды:
Зайти в “Мой компьютер” -> “Свойства” ->
“Дополнительно” -> “Переменные среды”
Добавить переменную JAVA_HOME = “путь куда
установили JDK” (на пример, C:\java\jdk-11.0.2)
Отредактировать PATH, добавив “;%JAVA_HOME%\bin”
Пример для cmd.exe:
> set PATH=%PATH%;C:\java\jdk-11.0.2\bin
9
10.
Жизненный цикл java программы – Часть 1Файл с исходным кодом, текстовый формат, c
расширением *.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
10
11.
Жизненный цикл java программы – Часть 2Компилятор (javac)
Команда:
>javac Hello.java
11
12.
Жизненный цикл java программы – Часть 3Байт-код Java — набор инструкций,
исполняемых JVM.
Hello.class – результат работы компилятора
12
13.
Жизненный цикл java программы – Часть 4Интерпретатор java (JVM)
Команда:
> java.exe Hello
13
14. Память в JVM. Stack. Heap. Metaspace
StackСтек работает по схеме LIFO (последним вошел, первым вышел). Всякий раз, когда
вызывается новый метод, содержащий примитивные значения или ссылки
на объекты, то на вершине стека под них выделяется блок памяти.
Когда метод завершает выполнение, блок памяти (frame), отведенный для его
нужд, очищается, и пространство становится доступным для следующего метода.
При этом поток выполнения программы возвращается к месту вызова этого метода
с последующим переходом к следующей строке кода.
UX/UI DEVELOPMENT - 001
15. Основные особенности стека
•Он заполняется и освобождается по мере вызова и завершенияновых методов
•Переменные в стеке существуют до тех пор, пока выполняется метод
в котором они были созданы
•Если память стека будет заполнена, Java бросит исключение
java.lang.StackOverFlowError
•Доступ к этой области памяти осуществляется быстрее, чем к куче
•Является потокобезопасным, поскольку для каждого потока
создается свой отдельный стек
UX/UI DEVELOPMENT - 001
16. Heap
UX/UI DEVELOPMENT - 00117. Основные свойства
Java Heap (куча) используется Java Runtime для выделенияпамяти под объекты и JRE классы.
Создание нового объекта также происходит в куче.
Здесь работает сборщик мусора: освобождает память путем
удаления объектов, на которые нет каких-либо ссылок.
Любой объект, созданный в куче, имеет глобальный доступ и на
него могут ссылаться с любой части приложения.
UX/UI DEVELOPMENT - 001
18. Metaspace
Metaspace – новая область памяти, появившаяся в 8версии Java и заменившая устаревшую PermGen.
Основное их отличие заключается в способе
распределения памяти.
Metaspace хранит в себе описание классов,
статические переменные и методы
В результате появления Metaspace, процесс очистки
памяти получил некоторые преимущества. Теперь
сборщик мусора автоматически удаляет из памяти
ненужные классы, когда емкость, выделенная для
хранения метаданных, достигает максимального
значения. Вместе с этим, уменьшилась вероятность
получения ошибки OutOfMemoryError.
UX/UI DEVELOPMENT - 001
19.
Спасибо за внимание19