1. Примитивы. Все примитивные типы и их размеры
Скачать 44.38 Kb.
|
Целочисленные - 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 (любое) из двоичной в десятичную |