Файл: Все примитивные типы и их размеры. Целочисленные byte.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 262
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
&& - это укороченный вариант &. Отличия в том, что в укороченной версии (&&), если первый операнд false, то второй даже не проверяется, сразу ясно что выражения false. Так же и с || и |, в укороченной версии (||) если первый операнд true, то второй даже не рассматривается. Это довольно удобно, если например имеем
1
func1() & func2()
в этом случае вызываются обе функции, даже если первая false, а это уже значит результат ясен, все выражение false, а func2() все равно проверяется (а это лишние затраты). А вот так
2
func1() && func2()
если первое выражение false, то func2() даже не вызывается для проверки, т.к результат уже ясен.
(a & b) - будет проверено и a, и b
(a | b) - будет проверено и а, и b
(a && b) - если а=false, то b проверено не будет
(a || b) - если а=true, то b проверено не будет
-
Какие есть условные операторы?
if/else
switch case
тернарный оператор (условие?значение1: значение2)
(String securityAnswer = man.getAge() >= 18 ? "Все в порядке, проходите!" : "Этот фильм не подходит)
Можно ли в switch case использовать String, Enum?
да
-
Какие есть циклы в Java? Чем отличаются друг от друга?
while – цикл с предусловием.
do while – цикл с постусловием. выполниться один раз, а потом проверит условие
for – цикл со счетчиком
foreach – цикл для перебора коллекций и элементов массива
-
Что такое continue и break?
continue – continue используется для выхода из текущего выполнения (итерации) и передачи управления обратно в начало цикла.
при вызове этого оператора цикл прекращает текущую итерацию, выполняет <действие после итерации> и проверяет условие цикла. Если проверка вернула true, то переходит к следующей итерации, а иначе — заканчивается.
break – Оператор применяется для прерывания текущей итерации . С его помощью происходит выход из блока фигурных скобок оператора цикла либо оператора switch с дальнейшей передачей управления следующему оператору. Если задействуются вложенные операторы, break обеспечивает выход из самого внутреннего оператора.
?Почему не рек операторы break и continue (c метками?)
неоправданно усложняют текст программы омендуется их использовать?
?)Если в case не поставить break что будет?
Если не использовать оператор break, то, сразу после того, как выполнится один блок кода, программа переключится на выполнения следующего case,
-
Что такое рекурсия? Недостатки и преимущества?
Рекурсия – вызов функции самой себя.
+ некоторые алгоритмы проще, короче и понятнее написать через рекурсию, чем через циклы
- скорость работы, нужно больше памяти
основные принципы рекурсии
1)Рекурсия должна заканчиваться
2) Рекурсия должна двигаться(иметь шаг)
-
Почему 2.0 - 1.1 != 0.9?
Для вещественных чисел нельзя использовать проверку на
равенство при помощи ==
• Это связано с ошибками округления – компьютер имеет
ограниченную точность при работе с вещественными
числами
• System.out.println(2.0 - 1.1);
// 0.8999999999999999
• System.out.println(2.0 - 1.1 == 0.9);
// false
Проверка на равенство вещ-х чисел
• Поэтому проверку на равенство нужно заменять на
проверку, что число лежит в некотором небольшом
диапазоне
• ???? = ????
• ???? − ???? = 0
• Теперь позволяем разности отклоняться от 0 в диапазоне
от −???? до ????
• −???? ≤ ???? − ???? ≤ ????
• ???? − ???? ≤ ????
Проверка на равенство вещ-х чисел
• ???? − ???? ≤ ????
• В коде:
• double epsilon = 1.0e-10;
if (Math.abs(a - b) <= epsilon) {
// a примерно равен b
}
• Команда Math.abs(x) выдает модуль вещественного числа
• В качестве epsilon можно брать любое маленькое
положительное число
-
Перевод в двоичную систему?
Integer.toBinaryString(100) – перевод в двоичную систему 100 Результат: 1100100
Integer.parseInt("1100110",2) – перевод в десятичную систему 1100110 Результат: 102
-
char + short = type?
Получим тип int
-
BigInteger и BigDecimal?
BigInteger – аналог целочисленных значений произвольной длины, у которого нет ограничения в 64 бит как у long. Существует множество методов.
BigDecimal – тоже самое что и BigInteger, только с вещественными числами. В банковской сфере используеться BigDecimal вместо double, т.к обладает большими настройками.
-
byte a = 1; byte b = 2; byte c = a + b; Будут ли какие-то проблемы?
Компилятор будет выдавать ошибку.Т.к. по умолчанию тип будет int, а он не входит в byte, нужно явное преобразование типов
-
Что будет, если попытаться присвоить нулевую обертку (ссылка null) обратно в примитив?
Будет выброшено исключение NullPointerException, не может примитив иметь нулевую ссылку
-
Integer a = 100; Integer b = 100; a == b ? Почему?
Потому что создастся один объект в pool примитивов, и у них будет одна и таже ссылка.
-
Что такое null?
он служил, чтобы обозначить отсутствие чего-либо, например, пользователя, ресурса и т. п.
- Что такое null?
любые ссылочные переменные в Java по умолчанию будут равны null
каждый примитив имеет значение по умолчанию, например, у int это 0, у boolean это false
Что будет, если попытаться присвоить нулевую обертку (ссылка null) обратно в примитив? –
компилятор не отреагирует, но мы будем вознаграждены null pointer exception во время выполнения. Это происходит из-за авто упаковки (autoboxing)
Integer a = 100; Integer b = 100; a == b ? Почему?
Целые числа между -128 и 127 кэшируются (целые числа одного и того же значения ссылаются на один и тот же Object)
- Размер элемента массива –
-
Все примитивные типы и их размеры -
Какая размерность у boolean? -
Что такое char? Почему над ним можно выполнять арифметические операции? -
Какие есть виды приведения типов? Что такое явные и неявные приведения, с чем связано их наличие? -
Какие классы-обертки знаешь? -
Расскажи про unboxing, autoboxing в обертках -
Расскажи про pool строк и pool примитивов -
Как добавить String’у в pool строк? -
Разница между String, StringBuilder и StringBuffer? -
Что такое массив и какие на нём есть ограничения? -
Какая максимальная длина массива? -
Что такое метод, возвращаемое значение, аргументы метода? -
Что такое инкремент и декремент? -
Какие логические операции знаешь? Таблица истинности операторов. -
Какие есть условные операторы? -
Какие есть циклы в Java? Чем отличаются друг от друга? -
Что такое continue и break? -
Что такое рекурсия? Недостатки и преимущества?