В этой статье мы обсудим различия между JVM, JRE и JDK, рассмотрев их компоненты и способы использования.
2. JVM
Виртуальная машина Java (JVM) — это реализация виртуальной машины, которая выполняет программу Java.
Сначала JVM интерпретирует байт-код. Затем он сохраняет информацию о классе в области памяти. Наконец, он выполняет байт-код, сгенерированный компилятором java.
Это абстрактная вычислительная машина с собственным набором команд, которая манипулирует различными областями памяти во время выполнения.
Компоненты JVM являются:
- Загрузчики классов
- Области данных времени выполнения
- Двигатель исполнения
2.1. Загрузчики классов
Первоначальные задачи JVM включают загрузку, проверку и связывание байт-кода. Загрузчики классов справляются с этими задачами.
У нас есть подробная статья, посвященнаяclass loaders.
2.2. Области данных времени выполнения
The JVM defines various memory areas to execute a Java program. Они используются во время выполнения и известны как области данных времени выполнения. Некоторые из этих областей создаются при запуске JVM и уничтожаются при выходе из JVM, а некоторые создаются при создании потока и уничтожаются при выходе из потока.
Oracle JDK vs OpenJDK: Что же устанавливать начинающему?
Давайте рассмотрим эти области по порядку:
Область метода
По сути, область метода аналогична области хранения скомпилированного кода. Он хранит такие структуры, как пул констант во время выполнения, данные полей и методов, код для методов и конструкторов, а также полностью определенные имена классов. JVM хранит эти структуры для каждого класса.
Область метода, также известная как пространство постоянной генерации (PermGen), создается при запуске JVM. Память для этой области не должна быть смежной. Все потоки JVM разделяют эту область памяти.
Площадь кучи
JVM выделяет память для всех экземпляров классов и массивов из этой области.
Сборщик мусора (GC) восстанавливает память кучи для объектов. По сути, GC имеет три фазы для восстановления памяти от объектов, а именно. два второстепенных GC и один крупный GC.
Память кучи состоит из трех частей:
- Eden Space — это часть пространства Young Generation. Когда мы создаем объект, JVM выделяет память из этого пространства
- Survivor Space — это тоже часть пространства Young Generation. Пространство выживших содержит существующие объекты, которые пережили минорные фазы ГХ ГХ
- Арендное пространство — это также известно как пространство Старого поколения. Это держит долго выживающие объекты. По сути, для объектов молодого поколения устанавливается порог, и при достижении этого порога эти объекты перемещаются в постоянное пространство.
JVM создает область кучи, как только она запускается. Все потоки JVM разделяют эту область. Память для области кучи не должна быть смежной.
Площадь стека
Хранит данные в виде кадров, а каждый кадр хранит локальные переменные, частичные результаты и вложенные вызовы методов. JVM создает область стека всякий раз, когда создает новый поток. Эта область является приватной для каждой темы.
Java: что это и для чего нужен
Каждая запись в стеке называется стековым фреймом или записью активации. Каждый кадр состоит из трех частей:
- Local Variable Array — содержит все локальные переменные и параметры метода
- Стек операндов — используется как рабочая область для хранения промежуточных результатов вычислений.
- Данные кадра — используются для хранения частичных результатов, возвращаемых значений для методов и ссылки на таблицуException, которая предоставляет соответствующую информацию о блоке перехвата в случае исключений.
Память для стека JVM не обязательно должна быть смежной.
Регистры ПК
Каждый поток JVM имеет отдельный регистр ПК, в котором хранится адрес выполняемой в данный момент инструкции. Если текущая выполняемая инструкция является частью собственного метода, тогда это значение не определено.
Родной метод стеков
Родные методы — это методы, написанные на языках, отличных от Java.
JVM предоставляет возможности для вызова этих собственных методов. Стеки собственного метода также известны как «Стеки С». Они хранят информацию о родном методе. Всякий раз, когда собственные методы компилируются в машинные коды, они обычно используют стек собственных методов для отслеживания своего состояния.
JVM создает эти стеки всякий раз, когда создает новый поток. Таким образом, потоки JVM не разделяют эту область.
2.3. Двигатель исполнения
Механизм выполнения выполняет инструкции, используя информацию, присутствующую в областях памяти. Он состоит из трех частей:
переводчик
Когда загрузчики классов загружают и проверяют байт-код, интерпретатор выполняет байт-код построчно. Это выполнение довольно медленно. Недостаток интерпретатора состоит в том, что когда один метод вызывается несколько раз, каждый раз требуется новая интерпретация.
Однако JVM использует JIT-компилятор для устранения этого недостатка.
Компилятор Just-In-Time (JIT)
JIT-компилятор компилирует байт-код часто вызываемых методов во встроенный код во время выполнения. Следовательно, он отвечает за оптимизацию программ на Java.
JVM автоматически отслеживает, какие методы выполняются. Как только метод становится пригодным для JIT-компиляции, он планируется для компиляции в машинный код. Этот метод тогда известен как горячий метод. Эта компиляция в машинный код происходит в отдельном потоке JVM.
В результате он не прерывает выполнение текущей программы. После компиляции в машинный код он работает быстрее.
Уборщик мусора
Java заботится об управлении памятью с помощью Garbage Collection. Это процесс изучения памяти кучи, определения, какие объекты используются, а какие нет, и, наконец, удаления неиспользуемых объектов.
GC — это поток демонов. Его можно вызвать явно с помощью методаSystem.gc _ () _, однако он не будет выполнен немедленно, и JVM решит, когда вызывать сборщик мусора.
2.4. Собственный интерфейс Java
Он действует как интерфейс между кодом Java и нативными (C / C ++) библиотеками.
Бывают ситуации, когда сама по себе Java не отвечает потребностям вашего приложения, например, реализация платформенно-зависимой функции.
В этих случаях мы можем использовать JNI, чтобы код, запущенный в JVM, вызывал. И наоборот, он позволяет нативным методам вызывать код, выполняемый в JVM.
2.5. Родные библиотеки
Это специфичные для платформы библиотеки и содержат реализацию собственных методов.
3. JRE
Среда выполнения Java (JRE) — это набор программных компонентов, используемых для запуска приложений Java.
Основные компоненты JRE включают в себя:
- Реализация виртуальной машины Java (JVM)
- Классы, необходимые для запуска программ на Java
- Файлы свойств
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
job4j / interview_questions / Core.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cannot retrieve contributors at this time
552 lines (366 sloc) 28 KB
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Copy raw contents
Copy raw contents
1. Что такое виртуальная машина?
Виртуальная машина — это программная и/или аппаратная система, эмулирующая аппаратное обеспечение гостевой (target) платформы и исполняющая программы для target-платформы на host-платформе (платформа-хозяин) или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы.
т.е. по-простому VM — это программная копия физического компьютера, которая выполняет ПО написанное под конкретную платформу, переводя скомпилированный байт-код в машинные операции.
например Java VM исполняет байт-код java, созданный из исходного кода java-программы компилятором javac.
2. К какому типа языка программирование относиться Java?
Java — строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (далее приобретённой Oracle). Каждая переменная и константа представляет определенный тип, который строго определен. Тип данных определен диапазоном значений, которые может хранить переменная или константа. Все выражения и параметры javac проверяет на соответствие типов.
Java — интерпретируемый язык, т.е. написанный код компилируется в байт-код Java, который передается в интерпретатор (JVM)
Т.е. следует принципу «Писать один раз, запускать где угодно» — скомпилированный код Java может работать на всех платформах, поддерживающих Java, без необходимости перекомпиляции.
3. Из каких компонентов состоит Java JDK JRE JVM?
Java состоит из компилятора языка javac, виртуальной машины, различных библиотек и утилит.
Java Development Kit (JDK) является одним из трех основных пакетов, используемых в программировании на языке Java. К ним также относятся JVM (Java Virtual Machine) и JRE (Java Runtime Environment).
- JVM — это часть платформы Java, которая исполняет программы;
- JRE — это элемент Java, расположенный на диске, создающий и запускающий JVM;
- JDK — позволяет разработчикам создавать Java-программы, которые могут выполняться и запускаться посредством JVM и JRE. JDK = JRE + компилятор
4. Для чего используется JDK?
JDK (Java Development Kit) — это комплект разработчика приложений Java, включающий компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE).
- Техническое определение: JDK — это реализация спецификации платформы Java, включающая в себя компилятор и библиотеки классов.
- Обобщенное определение: JDK — это программный пакет, который вы загружаете для создания Java приложений.
5. Для чего используется JRE?
JRE (Java Runtime Environment) представляет минимальную реализацию виртуальной машины, необходимую для исполнения Java-приложений.
JRE состоит из виртуальной машины JVM (Java Virtual Machine) и библиотек Java-классов.
6. Для чего используется VM?
JVM (Java Virtual Machine) — это виртуальная машина Java, предназначенная для исполнения Java программ и являющаяся основной частью JRE.
JVM интерпретирует байт-коды Java приложений, полученные в результате компиляции исходного кода Java-программы компилятором javac. Т.е. виртуальная Java машина содержит интерпретатор байт-кода.
Для повышения производительности во многих JVM дополнительно применяется JIT-компиляция, предназначенная для преобразования часто исполняемых фрагментов байт-кода в машинный код.
7. Расскажите про примитивные типы?
1. Примитивные:
- byte (целые числа, 1 байт или 8 бит, интервал значений [-128, 127] т.е. 2^7, т.к. отрицательные, ноль и положительные)
- short (целые числа, 2 байта или 16 бит, [-32768, 32767])
- int (целые числа, 4 байта, [-2147483648, 2147483647])
- long (целые числа, 8 байт, [-9223372036854775808, 9223372036854775807])
- float (вещественные числа, 4 байта)
- double (вещественные числа, 8 байт)
- char (символ Unicode , 2 байта, [0, 65536])
- boolean (значение истина/ложь, используется int , зависит от JVM)
Примитивы передаются по значению.
2. Ссылочные — типы, которые содержат адреса в местах памяти, где хранятся данные. Т.е. хранят дескрипторы объектов в кучном пространстве.
Это все остальные типы: классы, перечисления и интерфейсы, например, объявленные в стандартной библиотеке Java, а также массивы.
- String предназначен для хранения строк текста. Объекты класса String являются неизменяемыми (immutable). Поэтому, когда вам кажется, что вы меняете строку, то на самом деле вы создаёте новую строку.
- Классы-обертки — соответствуют примитивным типам, однако являются ссылочными, содержат методы для преобразования типов, а также другие константы и методы полезные при работе с примитивами.
- Byte
- Short
- Integer
- Long
- Float
- Double
- Character
- Boolean
Классы-обертки позволяют нивелировать недостатки, которые есть у примитивных типов. Самый очевидный из них — примитивы не имеют методов.
Пример 1. у примитивов нет метода toString() , поэтому, например, нельзя преобразовать число типа int в строку. А вот с классом-оберткой Integer — запросто.
public static void main(String[] args) < Integer i = new Integer(432); String s = i.toString(); >
Пример 2. сложности с обратным преобразованием. Допустим, у нас есть строка, которая содержит число.
В случае с примитивным типом int это число из строки нельзя достать и превратить, собственно, в число. Но благодаря классам-оберткам такая возможность имеется.
public static void main(String[] args) < String s = «1166628»; Integer i = Integer.parseInt(s); System.out.println(i); >
Автобоксинг — помещение примитивного типа в класс-обертку.
Анбоксинг — присвоение значения класса-обертки примитивному типу.
8. Описать шаги для компиляции и запуска приложения в консоли javac java?
Создаем класс — файл с расширением *.java Main.java
Переходим в каталог, где лежит данный файл, и запускаем компилятор javac, где указываем что компилируем и куда складываем javac -d куда Main.java
На выходе получаем файл Main.class — это байт-код.
Далее запускаем байт-код, расширение можно не указывать java -cp откуда Main arg0 arg1 arg2
9. Что такое оператор условия?
Оператор условия — это операторы (ключевые слова языка), которые создают ветвление алгоритма программы.
10. Какие типы оператор условия существуют?
- Конструкция if-else
if (условие) < оператор1; оператор2; > else < оператор1; оператор2; >
- Множественное условие switch
switch(i) < case 1: System.out.println(«Тест работает.»); break; case 2: System.out.println(«Тест добрый.»); break; case 3: System.out.println(«Тест поможет вам.»); break; >
пример из теста:
public class ExampleSwitch < public static void main(String args[]) < for(int i = 0; i < 3; i++) < switch(i) < case 0: break; case 1: System.out.print(«one «); //break; case 2: System.out.print(«two «); //break; case 3: System.out.print(«three «); //break; > //System.out.println(«End of step.»); > System.out.println(«done»); > //вывод: one two three two three done >
- Тернарный оператор Логическое_выражение ? Выражение1 : Выражение2
int largerNum = lowNum < highNum ? highNum : lowNum;
11. Расскажите про булевы операции || Что такое short circuit?
|| — логическое ИЛИ, результат будет True хотя бы один операнд True .
— логическое И, результат будет False хотя бы один операнд False .
Операторы
13. Что такое циклы и для чего они используются?
Цикл — это многократно повторяющийся фрагмент программы. Применяются очень широко, например для обхода чего-либо и многократного повторения какой-либо операции.
14. Для чего используется цикл for?
Определенный цикл используется для многократного повторения чего-либо, если четко известно кол-во требуемых повторений.
for — цикл типа «n-раз»
for (int i = 0; i < n; i++) < оператор1; оператор2; >
15. Для чего используется цикл foreach?
Цикл используется при обходе массивов, предполагаю коллекций и других объектов, поддерживающих итератор. При этом цикл выполняется кол-во раз равное кол-ву элементов
for (String str: argv) < //argv — коллекция оператор1; оператор2; >
16. Для чего используется цикл while?
Неопределенный цикл, используется для многократного повторения чего-либо, когда неизвестно кол-во требуемых повторений, а выполняется определенное условие
while — цикл «пока»
while (условие) < оператор1; оператор2; >
17. Для чего используется цикл do while?
Неопределенный цикл, используется также как и while , но тело цикла нужно выполнить хотя бы раз, т.е. условное выражение проверяется в конце цикла
do < оператор1; оператор2; > while (условие);
18. Что такое массив?
Массив — это структура данных, которая хранит упорядоченные коллекции фиксированного размера элементов нужного типа.
Массив в Java это объект и доступ к нему осуществляется через ссылочный тип.
Одномерный массив — список однотипных переменных.
Многомерный массив — это массив массивов.
19. Как создать массив?
Создаем переменную ссылочного типа на массив и ссылаем её на созданный объект массива из 10 элементов: int[] array = new int[10];
Так же можно не указывать кол-в элементов, а сразу их объявить:
можно сделать безымянный массив: new int [ ]
20. Как присвоить значение ячейке массива?
Обратиться к массиву по индексу и присвоить значение. Индексирование массива начинается с нуля. array[0] = 10; array[0] = 20;
21. Как можно пройти по всем элементам массива?
С помощью циклов, например:
for (int item: array) < System.out.println(item); >
где item — элемент цикла в каждой итерации.
for (int i = 0; i < array.length; i++) < System.out.println(array[i]); >
22.
Как можно найти элемент в массиве?
С помощью цикла и условного оператора.
int[] array = 1, 5, 15> for (int x: array) < if (x == 5) < System.out.println(x); > >
23. Что будет если обратить к несуществующей ячейки массива?
получим ошибку во время исполнения программы ArrayIndexOutOfBoundsException
24. Как удалить ячейку в массиве?
Ячейку удалить нельзя, но можно обнулить её значение или ссылку на объект, которую она содержала.
25. Как отредактировать ячейку в массиве?
Так же как и присвоить ей значение. Обратиться к массиву по индексу и присвоить значение. Индексирование массива начинается с нуля.
array[0] = 10; array[0] = 20;
26. Что такое автобоксинг и анбоксинг?
автобоксинг — автоматическая ковенртация компилятором между примитивными типами и классами обертками. Character ch = ‘a’; Компилятор делает автоматическое преобразование по типу Integer.valueOf(i)
Преобразование происходит в случаях:
- когда параметр передается в метод в котором ожидается класс обертками;
- когда идет присвоение классу обертке.
анбоксинг — обратная операция преобразование из обертки в примитив.
Integer i; i = i % 2;
Т.к. операция % применима только к примитивам, то происходит i.intValue() % 2
Преобразование происходит в случаях:
- когда параметр передается в метод в котором ожидается класс-обертка;
- когда идет присвоение классу-обертке.
27. Как в Java передаются параметры в методы?
В Java параметры в методы передаются по значению. т.е. в методе создается локальная переменная аргумента и ей присваивается значение передаваемого параметра. Всегда:
- для примитивов передается копия значения,
- для объектов передается копия ссылки (а не сама ссылка). Это значит, что нельзя поменять ссылку в методе. Можно только поменять сам объект по ссылке. В примере ниже после выхода из метода в stroka сохранится ссылка на «MY SIMPLE STRING»;
public class TestClass < public static void changeIt(String stroka) < stroka = «ANOTHER SIMPLE STRING»; > public static void main(String[] args) < String stroka = «MY SIMPLE STRING»; System.out.println(stroka); //»MY SIMPLE STRING» changeIt(stroka); //передается копия ссылки.
System.out.println(stroka); // «MY SIMPLE STRING» не изменилось > >
28. Почему нельзя изменить ссылку на объект в методе?
Потому что в метод передается не ссылка, а объект, который содержит копию ссылки.
Внутри метода можно изменить локальную ссылку на объект, но это не повлияет на ссылку, которую передали в метод.
29. Почему нельзя сравнивать ссылочные типы по оператору ==?
Потому, что будут сравниваться адреса в памяти на которые указывают ссылки, а не сами объекты. И они буду отличаться.
Чтобы сравнить объекты нужно использовать метод equals()
30. Почему примитивные типы можно сравнивать через оператор ==?
Потому, что они эти типы содержат значения, и оператором == буду сравниваться значения этих переменных.
31. Какие объекты могут быть использованы в операторе switch?
Можно использовать простые типы byte , short , char , int . Также можно использовать строки String и Enum , а также специальные классы, которые являются обёрткой для примитивных типов: Character , Byte , Short , Integer .
Источник: github.com
Что такое JDK? — Ключевые понятия и компоненты JDK
JDK обычно называют средой разработки программного обеспечения. По сути, он обеспечивает среду разработки для всех приложений и апплетов на основе Java. Он включает в себя некоторые программные компоненты, и поэтому его также называют комплектом программных компонентов.
Java — это независимая от платформы программа, т.е. она может использоваться в нескольких сценариях, независимо от системы. Это один из быстрых, надежных и безопасных языков программирования. Он может быть использован для выполнения веб-сайтов и приложений. Но Java не может быть правильно реализована без JDK (Java Development Kit).
Что такое JDK?
Все Java-приложения и апплеты разрабатываются с использованием JDK. Он состоит из ряда программных компонентов. Одним из них является JRE (Java Runtime Environment) и другие инструменты, такие как java и javac, которые вместе называются инструментами разработки. У JRE есть JVM (виртуальная машина Java) и другие библиотечные файлы.
JDK обеспечивает базу для всех приложений, предназначенных для сборки на платформе Java. Программное обеспечение содержит различные инструменты и утилиты, которые помогают выполнять различные задачи. Итак, это всего лишь обзор JDK.
Компоненты JDK
Давайте посмотрим на некоторые из наиболее часто используемых компонентов JDK, перечисленных ниже:
- JRE : среда выполнения Java
- Java: это просто загрузчик, который работает для всех Java-приложений. Кроме того, этот конкретный инструмент интерпретирует файл класса, сгенерированный javac. Единственный Java-пусковой модуль используется для целей разработки и развертывания. Прошли те времена, когда JRE использовался в качестве пусковой установки развертывания. В настоящее время JRE не существует с Sun JDK и полностью заменено этим новым загрузчиком Java.
- Джавак: Это компилятор. И, в основном, он преобразует исходный код в байт-код Java
- appletviewer : с помощью этого компонента, не прибегая к помощи веб-браузера, мы можем запускать Java-апплеты и даже отлаживать их.
- apt: используется как инструмент для обработки аннотаций
- extcheck: для выявления конфликтов используется следующая проверка
- idlj: компилятор IDL-Java, используемый для генерации привязок Java из предоставленного файла IDL Java
- Jabswitch: это мост доступа Java
- javadoc: это генератор документации, который автоматически генерирует документацию из комментариев исходного кода
- jar: это архиватор Вместе со связанными библиотеками классов упаковывает в один файл JAR. Кроме того, он управляет этими файлами
- javafxpackager: это инструмент для получения пакетов и подписывания приложений JavaFX
- jarsigner: это инструмент проверки и подписи jar- файлов
- javah: это генератор-заглушка и заголовок ‘C’, который используется для написания встроенных методов
- javap: это дизассемблер файлов классов
- javaws: это средство запуска Java Web Start для приложений JNLP
- JConsole: это консоль, используемая для мониторинга и управления Java
- JDB: это отладчик
- jhat: это инструмент анализа кучи Java (экспериментальный)
- jinfo: он особенно используется для получения информации о конфигурации от запущенного процесса Java
- jmap: это Oracle jmap, который также является картой памяти. Это дает результат карты памяти для Java. С другой стороны, это полезно при печати памяти кучи или карт памяти общего объекта с подробностями конкретного дампа ядра или процесса.
- JMC: он известен как Java Mission Control
- JPS: это процесс JVM, инструмент состояния. Он способен перечислять инструментированные виртуальные машины HotSpot в целевой системе
- jrunscript: это оболочка сценария командной строки Java
- jstack: инструмент печатает следы стека Java потоков Java
- jstat: инструмент мониторинга статистики виртуальной машины Java
- keytool: инструмент для работы с Keystore
- pack200: инструмент сжатия JAR
- Policytool: Утилита, которая определяет среду выполнения Java. Это означает, что это инструмент для создания политики и управления.
- VisualVM: это визуальный инструмент. Он интегрирован с многочисленными инструментами командной строки JDK.
- wsimport : он создает переносимые артефакты JAX-WS с целью вызова веб-службы
- xjc: Это часть Java API, улучшающая API XML Binding (JAXB). После принятия схемы XML он генерирует классы Java
При этом инструменты разработки также доступны; библиотеки и аппы доступны с JDK. Еще одним важным компонентом является JVM, который называется Java Virtual Machine и обеспечивает поддержку выполнения на любой платформе.
Это то, что программные компоненты доступны с JDK.
Понимание JDK
Ключевая платформа JDK используется для создания приложений на основе Java. И это считается сердцем Java-компилятора. JDK используется для разработки программного обеспечения на основе Java, а JRE — для запуска кода Java. Для простого запуска Java-программ JDK требуется JRE (используется как отдельный компонент).
Почему используется JDK?
Java Development Kit содержит множество инструментов и информацию о разработке Java. Развертывание программного обеспечения Java так же просто, как загрузка программного обеспечения JDK и смешивание его с classpath. После загрузки во время установки JDK выбор правильной версии Java будет единственным способом выполнения программы. Java 8 является широко используемой версией, но Java 10 является последней версией, также доступной в Интернете.
Набор каталогов — JDK используется в приложении спецификации платформы Java, включая библиотеки классов, а также компилятор. Он также может называться надмножеством JRE.
Цель JDK
Основное назначение JDK состоит в том, чтобы скомпилировать код и преобразовать код Java в байт-код, где JRE необходим для выполнения этих байт-кодов.
Java Development Kit может быть реализован на различных платформах Java, перечисленных ниже, выпущенных корпорацией Oracle.
- Java SE: стандартная версия платформы Java
- Java EE: Платформа Java Enterprise Edition
- Java ME: Платформа Java Micro Edition
Выбор одной из вышеперечисленных платформ полностью зависит от типа осуществляемого проекта.
Вывод
Итак, вот что такое JDK. Это хорошее время, чтобы начать работать с глубоким пониманием JDK. Построить приложение JAVA будет проще, изучив основы JDK и его компонентов, как описано в статье выше. Итак, начните и максимально используйте этот контент для достижения выгодных результатов в долгосрочной перспективе.
Рекомендуемые статьи
Эта статья была посвящена тому, что такое JDK (Java Development Kit). Здесь мы обсудили основные понятия со списком компонентов и видов использования. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше —
- Как установить Java 8
- Является ли Javascript чувствительным к регистру?
- Шпаргалка Python 3
- Строковые функции C ++
- JavaFX Label
- Макеты JavaFX
- Типы и как создавать диаграммы JavaFx?
- JavaFX Slider
- Как вводить текст в JavaFX TextField?
- Конструкторы и методы JavaFx Button
- 15 лучших методов HBox в JavaFX
Источник: ru.education-wiki.com