ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.10.2024
Просмотров: 3
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
-
Все примитивные типы и их размеры
Целочисленные - byte, short, int, long – 8 бит, 16 бит, 32 бит, 64 бит
Вещественные – float, double – 32 и 64 бит
Булевые – true, false – 8 бит в массиве, 32 бит в остальных случаях
Строковыей – char – 16 бит
-
Какая размерность у boolean? -
Что такое char? Почему над ним можно выполнять арифметические операции?
Char – представление символов в виде целочисленного значения. Каждому символу из из таблицы utf-16 соответствует целое число.
Целые числа можно слагать, вычитать и тд.
-
Какие есть виды приведения типов? Что такое явные и неявные приведения, с чем связано их наличие?
Явное и неявное. Явное – с указанием в виде (type). В java некоторые типы данных приводятся к другим автоматически, а некоторые нужно приводить явно.
-
Какие классы-обертки знаешь?
Byte, Short, Integer, Long, Double, Float, Character, String
-
Расскажи про unboxing, autoboxing в обертках
Значения переводятся из примитивов в обертки и наоборот без явного приведения
-
Расскажи про pool строк и pool примитивов
https://topjava.ru/blog/rukovodstvo-po-string-pool-v-java
Экземпляр класса String хранится в памяти, именуемой куча (heap), но есть некоторые нюансы. Если строка, созданная при помощи конструктора хранится непосредственно в куче, то строка, созданная как строковый литерал, уже хранится в специальном месте кучи — в так называемом пуле строк (string pool). В нем сохраняются исключительно уникальные значения строковых литералов, а не все строки подряд. Процесс помещения строк в пул называется интернирование (от англ. interning).
Вручную можно интернировать методом intern().
Если значение переменной не известно на этапе компиляции, то оно добавляется в heap.
При создании через конструктор, строка добавляется не в pool, а в кучу.
Intern не рекомендуется. Рекомендуется дедупликация - переприсваивание ссылок на поля значений value
-
Как добавить String’у в pool строк? -
Разница между String, StringBuilder и StringBuffer?
String – неизменяемая строка.
StringBuffer — потокобезопасная изменяемая строка.
StringBuilder – изменяемая строка с высокой производительностью, но без синхронизации.
-
Что такое массив и какие на нём есть ограничения? -
Какая максимальная длина массива?
Максимальное количество вложенных массивов – 255
Макс кол элементов – положительная половина int-а
-
Что такое метод, возвращаемое значение, аргументы метода?
-
Какие логические операции знаешь? Таблица истинности операторов.
& - Логическое AND (И)
&& Сокращённое AND
| Логическое OR (ИЛИ)
|| Сокращённое OR
^ Логическое XOR (исключающее OR (ИЛИ))
! Логическое унарное NOT (НЕ)
&= AND с присваиванием
|= OR с присваиванием
^= XOR с присваиванием
== Равно
!= Не равно
?: Тернарный (троичный) условный оператор
-
Какие есть условные операторы?
Условные операторы - if-else, switch-case, тернарный оператор
-
Какие есть циклы в Java? Чем отличаются друг от друга?
For I и for each. В for each увеличение только на единицу.
-
Что такое continue и break?
Пропуск хода, выход из цикла
-
Что такое рекурсия? Недостатки и преимущества?
Недостаток - скорость работы рекурсивного кода.
N.B. Другой недостаток - требования к размеру стека
Преимущество - некоторые алгоритмы многократно проще, короче и понятнее записать в рекурсивном виде, чем через циклы.
P.S. Любой циклический алгоритм можно записать в рекурсивном виде, а любой рекурсивный алгоритм можно записать с помощью комбинации цикла и стека.
Использование методом самого себя. 2 обязательных атрибута рекурсии – стоп-фактор и уменьшение входного параметра на значение.
-
BigInteger и BigDecimal
Для создания больших чисел, и с гарантией точности.
-
Почему 0.1 + 0.8 != 0.9 ?
Операции проводятся в двоичном виде, поэтому имеют место погрешности
-
Пул примитивов
В Java есть пул(pool) целых чисел в промежутке [-128;127]
При new – создается новый объект, который не включается в pool;
-
Переведи число X (любое) из десятичной в двоичную, и число Y (любое) из двоичной в десятичную