Входной точкой в программу на языке Java является метод main, который определен в классе Program. Именно с него начинается выполнение программы. Он обязательно должен присутствовать в программе. При этом его заголовок может быть только таким:
При запуске приложения виртуальная машина Java ищет в главном классе программы метод main с подобным заголовком, и после его обнаружения запускает его.
Вначале заголовка метода идет модификатор public, который указывает, что метод будет доступен извне. Слово static указывает, что метод main - статический, а слово void - что он не возвращает никакого значения. Далее в скобках у нас идут параметры метода - String args[] - это массив args, который хранит значения типа String, то есть строки. При запуске программы через этот массив мы можем передать в программу различные данные.
После заголовка метода идет его блок, который содержит набор выполняемых инструкций.
public static void main (String args[])
При запуске приложения виртуальная машина Java ищет в главном классе программы метод main с подобным заголовком, и после его обнаружения запускает его.
Вначале заголовка метода идет модификатор public, который указывает, что метод будет доступен извне. Слово static указывает, что метод main - статический, а слово void - что он не возвращает никакого значения. Далее в скобках у нас идут параметры метода - String args[] - это массив args, который хранит значения типа String, то есть строки. При запуске программы через этот массив мы можем передать в программу различные данные.
После заголовка метода идет его блок, который содержит набор выполняемых инструкций.
Тема: Переменные и константы
Для хранения данных в программе
предназначены переменные. Переменная представляет именованную область
памяти, которая хранит значение определенного типа. Каждая переменная
имеет тип, имя и значение. Тип определяет, какую информацию может
хранить переменная или диапазон допустимых значений.
Переменные объявляются следующим образом:
Например, определим переменную, которая будет называться x и будет иметь тип int:
В этом выражении мы объявляем переменную x типа int. То есть x будет хранить некоторое число не больше 4 байт.
В качестве имени переменной может выступать любое произвольное название, которое удовлетворяет следующим требованиям:
- имя может содержать любые алфавитно-цифровые символы, а также знак
подчеркивания, при этом первый символ в имени не должен быть цифрой
- в имени не должно быть знаков пунктуации и пробелов
- имя не может быть ключевым словом языка Java
Для хранения данных в программе
предназначены переменные. Переменная представляет именованную область
памяти, которая хранит значение определенного типа. Каждая переменная
имеет тип, имя и значение. Тип определяет, какую информацию может
хранить переменная или диапазон допустимых значений.
Переменные объявляются следующим образом:
тип_данных имя_переменной;
Например, определим переменную, которая будет называться x и будет иметь тип int:
int x;
В этом выражении мы объявляем переменную x типа int. То есть x будет хранить некоторое число не больше 4 байт.
В качестве имени переменной может выступать любое произвольное название, которое удовлетворяет следующим требованиям:
- имя может содержать любые алфавитно-цифровые символы, а также знак
подчеркивания, при этом первый символ в имени не должен быть цифрой
- в имени не должно быть знаков пунктуации и пробелов
- имя не может быть ключевым словом языка Java
Кроме того, при объявлении и последующем использовании надо учитывать, что Java - регистрозависимый язык, поэтому следующие объявления int num; и int NUM; будут представлять две разных переменных.
Объявив переменную, мы можем присвоить ей значение:
Также можно присвоить значение переменной при ее объявлении. Этот процесс называется инициализацией:
Если мы не присвоим переменной значение до ее использования, то мы можем получить ошибку, например, в следующем случае:
Через запятую можно объявить сразу несколько переменных одного типа:
Отличительной особенностью переменных является то, что мы можем в процессе работы программы изменять их значение:
Объявив переменную, мы можем присвоить ей значение:
int x; // объявление переменной
x = 10; // присвоение значения
System.out.println(x); // 10
Также можно присвоить значение переменной при ее объявлении. Этот процесс называется инициализацией:
int x = 10; // объявление и инициализация переменной
System.out.println(x); // 10
Если мы не присвоим переменной значение до ее использования, то мы можем получить ошибку, например, в следующем случае:
int x;
System.out.println(x);
Через запятую можно объявить сразу несколько переменных одного типа:
int x, y;
x = 10;
y = 25;
System.out.println(x); // 10
System.out.println(y); // 25
Отличительной особенностью переменных является то, что мы можем в процессе работы программы изменять их значение:
int x = 10;
System.out.println(x); // 10
x = 25;
System.out.println(x); // 25
Ключевое слово var:
Начиная с Java 10 в язык было добавлено ключевое слово var, которое также позволяет определять переменную:
Слово var ставится вместо типа данных, а сам тип переменной выводится из того значения, которое ей присваивается. Например, переменной x присваивается число 10, значит, переменная будет представлять тип int.
Но если переменная объявляется с помощью var, то мы обязательно должны инициализировать ее, то есть предоставить ей начальное значение, иначе мы получим ошибку, как, например, в следующем случае:
Константы:
Кроме переменных, в Java для хранения данных можно использовать константы. В отличие от переменных константам можно присвоить значение только один раз. Константа объявляется также, как и переменная, только вначале идет ключевое слово final:
Как правило, константы имеют имена в верхнем регистре.
Константы позволяют задать такие переменные, которые не должны больше изменяться. Например, если у нас есть переменная для хранения числа pi, то мы можем объявить ее константой, так как ее значение постоянно.
Начиная с Java 10 в язык было добавлено ключевое слово var, которое также позволяет определять переменную:
var x = 10;
System.out.println(x); // 10
Слово var ставится вместо типа данных, а сам тип переменной выводится из того значения, которое ей присваивается. Например, переменной x присваивается число 10, значит, переменная будет представлять тип int.
Но если переменная объявляется с помощью var, то мы обязательно должны инициализировать ее, то есть предоставить ей начальное значение, иначе мы получим ошибку, как, например, в следующем случае:
var x; // ! Ошибка, переменная не инициализирована
x = 10;
Константы:
Кроме переменных, в Java для хранения данных можно использовать константы. В отличие от переменных константам можно присвоить значение только один раз. Константа объявляется также, как и переменная, только вначале идет ключевое слово final:
final int LIMIT = 5;
System.out.println(LIMIT); // 5
// LIMIT=57; // так мы уже не можем написать, так как LIMIT - константа
Как правило, константы имеют имена в верхнем регистре.
Константы позволяют задать такие переменные, которые не должны больше изменяться. Например, если у нас есть переменная для хранения числа pi, то мы можем объявить ее константой, так как ее значение постоянно.
Тема: Типы данных.
Одной из основных особенностей Java является то, что данный язык является строго типизированным. А это значит, что каждая переменная и константа представляет определенный тип и данный тип строго определен. Тип данных определяет диапазон значений, которые может хранить переменная или константа.
Рассмотрим систему встроенных базовых типов данных, которая используется для создания переменных в Java. А она представлена следующими типами.
- boolean: хранит значение true или false
- byte: хранит целое число от -128 до 127 и занимает 1 байт
- short: хранит целое число от -32768 до 32767 и занимает 2 байта
- int: хранит целое число от -2147483648 до 2147483647 и занимает 4 байта
Одной из основных особенностей Java является то, что данный язык является строго типизированным. А это значит, что каждая переменная и константа представляет определенный тип и данный тип строго определен. Тип данных определяет диапазон значений, которые может хранить переменная или константа.
Рассмотрим систему встроенных базовых типов данных, которая используется для создания переменных в Java. А она представлена следующими типами.
- boolean: хранит значение true или false
boolean isActive = false;
boolean isAlive = true;
- byte: хранит целое число от -128 до 127 и занимает 1 байт
byte a = 3;
byte b = 8;
- short: хранит целое число от -32768 до 32767 и занимает 2 байта
short a = 3;
short b = 8;
- int: хранит целое число от -2147483648 до 2147483647 и занимает 4 байта
int a = 4;
int b = 9;
Тема: Типы данных (продолжение)
- long: хранит целое число от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 и занимает 8 байт
- double: хранит число с плавающей точкой от ±4.9*10-324 до ±1.7976931348623157*10308 и занимает 8 байт
В качестве разделителя целой и дробной части в дробных литералах используется точка.
- float: хранит число с плавающей точкой от -3.4*1038 до 3.4*1038 и занимает 4 байта
- char: хранит одиночный символ в кодировке UTF-16 и занимает 2 байта, поэтому диапазон хранимых значений от 0 до 65535
При этом переменная может принимать только те значения, которые соответствуют ее типу. Если переменная представляет целочисленный тип, то она не может хранить дробные числа.
- long: хранит целое число от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 и занимает 8 байт
long a = 5;
long b = 10;
- double: хранит число с плавающей точкой от ±4.9*10-324 до ±1.7976931348623157*10308 и занимает 8 байт
double x = 8.5;
double y = 2.7;
В качестве разделителя целой и дробной части в дробных литералах используется точка.
- float: хранит число с плавающей точкой от -3.4*1038 до 3.4*1038 и занимает 4 байта
float x = 8.5F;
float y = 2.7F;
- char: хранит одиночный символ в кодировке UTF-16 и занимает 2 байта, поэтому диапазон хранимых значений от 0 до 65535
При этом переменная может принимать только те значения, которые соответствуют ее типу. Если переменная представляет целочисленный тип, то она не может хранить дробные числа.
Тема: Целые числа
Все целочисленные литералы, например, числа 10, 4, -5, воспринимаются как значения типа int, однако мы можем присваивать целочисленные литералы другим целочисленным типам: byte, long, short. В этом случае Java автоматически осуществляет соответствующие преобразования:
Однако если мы захотим присвоить переменной типа long очень большое число, которое выходит за пределы допустимых значений для типа int, то мы столкнемся с ошибкой во время компиляции:
Здесь число 2147483649 является допустимым для типа long, но выходит за предельные значения для типа int. И так как все целочисленные значения по умолчанию расцениваются как значения типа int, то компилятор укажет нам на ошибку. Чтобы решить проблему, надо добавить к числу суффикс l или L, который указывает, что число представляет тип long:
Все целочисленные литералы, например, числа 10, 4, -5, воспринимаются как значения типа int, однако мы можем присваивать целочисленные литералы другим целочисленным типам: byte, long, short. В этом случае Java автоматически осуществляет соответствующие преобразования:
byte a = 1;
short b = 2;
long c = 2121;
Однако если мы захотим присвоить переменной типа long очень большое число, которое выходит за пределы допустимых значений для типа int, то мы столкнемся с ошибкой во время компиляции:
long num = 2147483649;
Здесь число 2147483649 является допустимым для типа long, но выходит за предельные значения для типа int. И так как все целочисленные значения по умолчанию расцениваются как значения типа int, то компилятор укажет нам на ошибку. Чтобы решить проблему, надо добавить к числу суффикс l или L, который указывает, что число представляет тип long:
long num = 2147483649L;
Тема: Целые числа (продолжение)
Как правило, значения для целочисленных переменных задаются в десятичной системе счисления, однако мы можем применять и другие системы счисления. Например:
Для задания шестнадцатеричного значения после символов 0x указывается число в шестнадцатеричном формате. Таким же образом восьмеричное значение указывается после символа 0, а двоичное значение - после символов 0b.
Также целые числа поддерживают разделение разрядов числа с помощью знака подчеркивания:
Как правило, значения для целочисленных переменных задаются в десятичной системе счисления, однако мы можем применять и другие системы счисления. Например:
int num111 = 0x6F; // 16-теричная система, число 111
int num8 = 010; // 8-ричная система, число 8
int num13 = 0b1101; // 2-ичная система, число 13
Для задания шестнадцатеричного значения после символов 0x указывается число в шестнадцатеричном формате. Таким же образом восьмеричное значение указывается после символа 0, а двоичное значение - после символов 0b.
Также целые числа поддерживают разделение разрядов числа с помощью знака подчеркивания:
int x = 123_456;
int y = 234_567__789;
System.out.println(x); // 123456
System.out.println(y); // 234567789
Тема: Числа с плавающей точкой.
При присвоении переменной типа float дробного литерала с плавающей точкой, например, 3.1, 4.5 и т.д., Java автоматически рассматривает этот литерал как значение типа double. И чтобы указать, что данное значение должно рассматриваться как float, нам надо использовать суффикс f:
И хотя в данном случае обе переменных имеют практически одно значения, но эти значения будут по-разному рассматриваться и будут занимать разное место в памяти.
При присвоении переменной типа float дробного литерала с плавающей точкой, например, 3.1, 4.5 и т.д., Java автоматически рассматривает этот литерал как значение типа double. И чтобы указать, что данное значение должно рассматриваться как float, нам надо использовать суффикс f:
float fl = 30.6f;
double db = 30.6;
И хотя в данном случае обе переменных имеют практически одно значения, но эти значения будут по-разному рассматриваться и будут занимать разное место в памяти.
#Оффтоп
#Вопросы_с_собеседований
Задание:
Какие типы данных есть в Java?
Ответ:
В Java есть примитивные типы данных:
byte — целые числа в пределах -128 до 127, весит 1 байт;
short — целые числа в пределах -32768 до 32767, весит 2 байта;
int — целые числа -2147483648 до 2147483647, весит 4 байта;
long — целые числа в пределах 9223372036854775808 до 9223372036854775807, весит 8 байтов;
float — числа с плавающей запятой в пределах -3.4E+38 до 3.4E+38, весит 4 байта;
double — числа с плавающей запятой в пределах -1.7E+308 до 1.7E+308, весит 8 байтов;
char — одиночные символы в UTF-16, весит 2 байта;
boolean значения true/false, весит 1 байт.
И ссылочные типы данных, которые указывают на объекты в куче.
P.S.: Про ссылочные типы подробнее расскажем далее
#Вопросы_с_собеседований
Задание:
Какие типы данных есть в Java?
Ответ:
В Java есть примитивные типы данных:
byte — целые числа в пределах -128 до 127, весит 1 байт;
short — целые числа в пределах -32768 до 32767, весит 2 байта;
int — целые числа -2147483648 до 2147483647, весит 4 байта;
long — целые числа в пределах 9223372036854775808 до 9223372036854775807, весит 8 байтов;
float — числа с плавающей запятой в пределах -3.4E+38 до 3.4E+38, весит 4 байта;
double — числа с плавающей запятой в пределах -1.7E+308 до 1.7E+308, весит 8 байтов;
char — одиночные символы в UTF-16, весит 2 байта;
boolean значения true/false, весит 1 байт.
И ссылочные типы данных, которые указывают на объекты в куче.
P.S.: Про ссылочные типы подробнее расскажем далее
Тема: Символы и строки.
В качестве значения переменная символьного типа получает одиночный символ, заключенный в одинарные кавычки: char ch='e';. Кроме того, переменной символьного типа также можно присвоить целочисленное значение от 0 до 65535. В этом случае переменная опять же будет хранить символ, а целочисленное значение будет указывать на номер символа в таблице символов Unicode (UTF-16). Например:
Еще одной формой задания символьных переменных является шестнадцатеричная форма: переменная получает значение в шестнадцатеричной форме, которое следует после символов "\u". Например, char ch='\u0066'; опять же будет хранить символ 'f'.
Символьные переменные не стоит путать со строковыми, 'a' не идентично "a". Строковые переменные представляют объект String, который в отличие от char или int не является примитивным типом в Java:
В качестве значения переменная символьного типа получает одиночный символ, заключенный в одинарные кавычки: char ch='e';. Кроме того, переменной символьного типа также можно присвоить целочисленное значение от 0 до 65535. В этом случае переменная опять же будет хранить символ, а целочисленное значение будет указывать на номер символа в таблице символов Unicode (UTF-16). Например:
char ch=102; // символ 'f'
System.out.println(ch);
Еще одной формой задания символьных переменных является шестнадцатеричная форма: переменная получает значение в шестнадцатеричной форме, которое следует после символов "\u". Например, char ch='\u0066'; опять же будет хранить символ 'f'.
Символьные переменные не стоит путать со строковыми, 'a' не идентично "a". Строковые переменные представляют объект String, который в отличие от char или int не является примитивным типом в Java:
String hello = "Hello...";
System.out.println(hello);
Тема: Символы и строки (продолжение).
Кроме собственно символов, которые представляют буквы, цифры, знаки препинания, прочие символы, есть специальные наборы символов, которые называют управляющими последовательностями. Например, самая популярная последовательность - "\n". Она выполняет перенос на следующую строку. Например:
Результат выполнения данного кода:
Hello
world
В данном случае последовательность \n будет сигналом, что необходимо сделать перевод на следующую строку.
Кроме собственно символов, которые представляют буквы, цифры, знаки препинания, прочие символы, есть специальные наборы символов, которые называют управляющими последовательностями. Например, самая популярная последовательность - "\n". Она выполняет перенос на следующую строку. Например:
String text = "Hello \nworld";
System.out.println(text);
Результат выполнения данного кода:
Hello
world
В данном случае последовательность \n будет сигналом, что необходимо сделать перевод на следующую строку.
#Вопросы_с_собеседований
Вопрос:
Объясните что такое JDK?
Ответ:
1) Java Development Kit
2) Это инструмент, необходимый для компиляции, документирования и упаковки программ Java.
3) Он содержит инструменты разработки JRE +.
Вопрос:
Объясните что такое JDK?
Ответ:
1) Java Development Kit
2) Это инструмент, необходимый для компиляции, документирования и упаковки программ Java.
3) Он содержит инструменты разработки JRE +.
Тема: Символы и строки (продолжение).
Начиная с версии 15 Java поддерживает тестовые блоки (text blocks) - многострочный текст, облеченный в тройные кавычки. Рассмотрим, в чем их практическая польза. Например, выведем большой многострочный текст:
С помощью операции + мы можем присоединить к одному тексту другой, причем продолжение текста может располагаться на следующей строке. Чтобы при выводе текста происходил перенос на следующую строку, применяется последовательность \n.
Текстовые блоки, которые появились в JDK15, позволяют упростить написание многострочного текста:
Весь текстовый блок оборачивается в тройные кавычки, при этом не надо использовать соединение строк или последовательность \n для их переноса.
Начиная с версии 15 Java поддерживает тестовые блоки (text blocks) - многострочный текст, облеченный в тройные кавычки. Рассмотрим, в чем их практическая польза. Например, выведем большой многострочный текст:
String text = "Вот мысль, которой весь я предан,\n"+
"Итог всего, что ум скопил.\n"+
"Лишь тот, кем бой за жизнь изведан,\n"+
"Жизнь и свободу заслужил.";
System.out.println(text);
С помощью операции + мы можем присоединить к одному тексту другой, причем продолжение текста может располагаться на следующей строке. Чтобы при выводе текста происходил перенос на следующую строку, применяется последовательность \n.
Текстовые блоки, которые появились в JDK15, позволяют упростить написание многострочного текста:
String text = """
Вот мысль, которой весь я предан,
Итог всего, что ум скопил.
Лишь тот, кем бой за жизнь изведан,
Жизнь и свободу заслужил.
""";
System.out.println(text);
Весь текстовый блок оборачивается в тройные кавычки, при этом не надо использовать соединение строк или последовательность \n для их переноса.
Тема: Консольный ввод/вывод в Java.
Наиболее простой способ взаимодействия с пользователем представляет консоль: мы можем выводить на консоль некоторую информацию или, наоборот, считывать с консоли некоторые данные. Для взаимодействия с консолью в Java применяется класс System, а его функциональность собственно обеспечивает консольный ввод и вывод.
Наиболее простой способ взаимодействия с пользователем представляет консоль: мы можем выводить на консоль некоторую информацию или, наоборот, считывать с консоли некоторые данные. Для взаимодействия с консолью в Java применяется класс System, а его функциональность собственно обеспечивает консольный ввод и вывод.
#Вопросы_с_собеседований.
Вопрос:
Что такое JRE?
Ответ:
1) Java Runtime Environment.
2) JRE относится к среде выполнения, в которой может выполняться байт-код Java.
3)Это реализация JVM, которая существует физически.
Вопрос:
Что такое JVM?
Ответ:
1) Java Virtual Machine.
2) Это абстрактная машина. Это спецификация, которая обеспечивает среду выполнения, в которой может выполняться байт-код.
3) JVM следует за тремя обозначениями: спецификация, реализация и экземпляр среды выполнения.
Вопрос:
Что такое JRE?
Ответ:
1) Java Runtime Environment.
2) JRE относится к среде выполнения, в которой может выполняться байт-код Java.
3)Это реализация JVM, которая существует физически.
Вопрос:
Что такое JVM?
Ответ:
1) Java Virtual Machine.
2) Это абстрактная машина. Это спецификация, которая обеспечивает среду выполнения, в которой может выполняться байт-код.
3) JVM следует за тремя обозначениями: спецификация, реализация и экземпляр среды выполнения.
Тема: Вывод на консоль.
Для создания потока вывода в класс System определен объект out. В этом объекте определен метод println, который позволяет вывести на консоль некоторое значение с последующим переводом курсора консоли на следующую строку. Например:
В метод println передается любое значение, как правило, строка, которое надо вывести на консоль. И в данном случае мы получим следующий вывод:
Hello world!
Bye world...
При необходимости можно и не переводить курсор на следующую строку. В этом случае можно использовать метод System.out.print(), который аналогичен println за тем исключением, что не осуществляет перевода на следующую строку.
Консольный вывод данной программы:
Hello world!Bye world...
Но с помощью метода System.out.print также можно осуществить перевод каретки на следующую строку. Для этого надо использовать escape-последовательность \n:
Для создания потока вывода в класс System определен объект out. В этом объекте определен метод println, который позволяет вывести на консоль некоторое значение с последующим переводом курсора консоли на следующую строку. Например:
public class Program {
public static void main(String[] args) {
System.out.println("Hello world!");
System.out.println("Bye world...");
}
}
В метод println передается любое значение, как правило, строка, которое надо вывести на консоль. И в данном случае мы получим следующий вывод:
Hello world!
Bye world...
При необходимости можно и не переводить курсор на следующую строку. В этом случае можно использовать метод System.out.print(), который аналогичен println за тем исключением, что не осуществляет перевода на следующую строку.
public class Program {
public static void main(String[] args) {
System.out.print("Hello world!");
System.out.print("Bye world...");
}
}
Консольный вывод данной программы:
Hello world!Bye world...
Но с помощью метода System.out.print также можно осуществить перевод каретки на следующую строку. Для этого надо использовать escape-последовательность \n:
System.out.print("Hello world \n");Тема: Вывод на консоль (продолжение).
Консольный вывод программы:
x=5; y=6
Но в Java есть также функция для форматированного вывода, унаследованная от языка С: System.out.printf(). С ее помощью мы можем переписать предыдущий пример следующим образом:
В данном случае символы %d обозначают спецификатор, вместо которого подставляет один из аргументов. Спецификаторов и соответствующих им аргументов может быть множество. В данном случае у нас только два аргумента, поэтому вместо первого %d подставляет значение переменной x, а вместо второго - значение переменной y. Сама буква d означает, что данный спецификатор будет использоваться для вывода целочисленных значений.
public class Program {
public static void main(String[] args) {
int x=5;
int y=6;
System.out.println("x=" + x + "; y=" + y);
}
}
Консольный вывод программы:
x=5; y=6
Но в Java есть также функция для форматированного вывода, унаследованная от языка С: System.out.printf(). С ее помощью мы можем переписать предыдущий пример следующим образом:
int x=5;
int y=6;
System.out.printf("x=%d; y=%d \n", x, y);
В данном случае символы %d обозначают спецификатор, вместо которого подставляет один из аргументов. Спецификаторов и соответствующих им аргументов может быть множество. В данном случае у нас только два аргумента, поэтому вместо первого %d подставляет значение переменной x, а вместо второго - значение переменной y. Сама буква d означает, что данный спецификатор будет использоваться для вывода целочисленных значений.
Тема: Вывод на консоль (продолжение).
Кроме спецификатора %d мы можем использовать еще ряд спецификаторов для других типов данных:
- %x: для вывода шестнадцатеричных чисел
- %f: для вывода чисел с плавающей точкой
- %e: для вывода чисел в экспоненциальной форме, например, 1.3e+01
- %c: для вывода одиночного символа
- %s: для вывода строковых значений
Например:
При выводе чисел с плавающей точкой мы можем указать количество знаков после запятой, для этого используем спецификатор на %.2f, где .2 указывает, что после запятой будет два знака. В итоге мы получим следующий вывод:
Name: Tom Age: 30 Height: 1,70
Кроме спецификатора %d мы можем использовать еще ряд спецификаторов для других типов данных:
- %x: для вывода шестнадцатеричных чисел
- %f: для вывода чисел с плавающей точкой
- %e: для вывода чисел в экспоненциальной форме, например, 1.3e+01
- %c: для вывода одиночного символа
- %s: для вывода строковых значений
Например:
public class Program {
public static void main(String[] args) {
String name = "Tom";
int age = 30;
float height = 1.7f;
System.out.printf("Name: %s Age: %d Height: %.2f \n", name, age, height);
}
}
При выводе чисел с плавающей точкой мы можем указать количество знаков после запятой, для этого используем спецификатор на %.2f, где .2 указывает, что после запятой будет два знака. В итоге мы получим следующий вывод:
Name: Tom Age: 30 Height: 1,70
#Вопросы_с_собеседований.
Вопрос:
Почему Java не на 100% объектно-ориентирована?
Ответ:
Потому что в ней используются восемь примитивных типов данных, таких как boolean, byte, char, int, float, double, long, short, которые не являются объектами.
Вопрос:
Что такое классы-оболочки?
Ответ:
Классы-оболочки преобразуют примитивы в ссылочные типы (объекты). Каждому примитивному типу данных посвящен класс. Они известны как классы-оболочки, потому что они «оборачивают» примитивный тип данных в объект этого класса.
Вопрос:
Почему Java не на 100% объектно-ориентирована?
Ответ:
Потому что в ней используются восемь примитивных типов данных, таких как boolean, byte, char, int, float, double, long, short, которые не являются объектами.
Вопрос:
Что такое классы-оболочки?
Ответ:
Классы-оболочки преобразуют примитивы в ссылочные типы (объекты). Каждому примитивному типу данных посвящен класс. Они известны как классы-оболочки, потому что они «оборачивают» примитивный тип данных в объект этого класса.
Тема: Ввод с консоли.
Для получения ввода с консоли в классе System определен объект in. Однако непосредственно через объект System.in не очень удобно работать, поэтому, как правило, используют класс Scanner, который, в свою очередь использует System.in. Например, напишем маленькую программу, которая осуществляет ввод чисел:
Для получения ввода с консоли в классе System определен объект in. Однако непосредственно через объект System.in не очень удобно работать, поэтому, как правило, используют класс Scanner, который, в свою очередь использует System.in. Например, напишем маленькую программу, которая осуществляет ввод чисел:
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Input a number: ");
int num = in.nextInt();
System.out.printf("Your number: %d \n", num);
in.close();
}
}