Главная страница
Навигация по странице:

  • Вещественные

  • Булевский тип

  • Какие данные мы рискуем потерять при явных приведениях

  • Ревью 2. Целые Byte 8 бит (принимает значения от 127 до 127) Short 16 бит (принимает значения от 32 768 до 32 767) Int 32 бит (принимает значения от 2 147


    Скачать 18.43 Kb.
    НазваниеЦелые Byte 8 бит (принимает значения от 127 до 127) Short 16 бит (принимает значения от 32 768 до 32 767) Int 32 бит (принимает значения от 2 147
    АнкорРевью 2
    Дата09.11.2022
    Размер18.43 Kb.
    Формат файлаdocx
    Имя файлаРевью 2.docx
    ТипДокументы
    #779232

    1. Какие примитивные типы есть в Java

    Целые типы, вещественные типы, булевские типы

    Целые:

    Byte – 8 бит (принимает значения от -127 до 127)

    Short – 16 бит (принимает значения от -32 768 до 32 767)

    Int – 32 бит (принимает значения от – 2 147 483 648 до 2 147 483 647)

    Long – 64 бит (принимает значения от -922 372 036 854 775 808 до 922 372 036 854 775 807)

    Char – 16 бит (принимает значения от 0 до 65 536)

    Вещественные:

    Float – 32 бит, точность 7-8 цифр

    Double – 64 бит, точность 17 цифр

    Могут принимать не только численные значения, но и любой из особо определенных флагов (отрицательная бесконечность, положительная бесконечность, отрицательный ноль, положительный ноль, отсутствие числа (NaN – not a number))

    Булевский тип:

    Логические переменные принимают одно из значений – true или false


    1. Что такое явные и неявные приведения, с чем связано их наличие?

    Неявные преобразования – те, которые выполняются автоматически, без явного указания

    Byte – short – int – long

    Char – int

    Float – double

    Int – double

    C потерей точности:

    Int – float

    Long – float

    Long – double

    Автоматически без проблем происходят расширяющие преобразования с выделением большего количества памяти

    Во всех остальных преобразованиях примитивных типов применяется операция преобразования (явные)


    1. Какие данные мы рискуем потерять при явных приведениях?

    При преобразовании рациональных чисел до целых происходит усечение дробной части, без округления (double a = 56.98989, при приведении к инту будет равен 56, хоть и 57 ближе, для округления функция библиотеки Math.round)

    При приведении чисел, которые находятся все диапазона типа также будет происходить усечение значения

    1. StringBuilder.

    Пул строк: Все строковые литералы на этапе компиляции кэшируются и добавляются в пул строк. Если сравнить две одинаковые строки значение будет true, потому что они будут ссылаться на один и тот же объект. Разные экземпляры класса не создаются, благодаря этому экономится память.

    Из-за того, что объекты класса Стринг – неизменямые, при попытке изменить объект будет создан новый, это порождает много мусора.

    Для изменения строк существуют классы СтрингБаффер и СтрингБилдер Они одинаковы практически во всем, кроме потокобезопасности. За счет того, что СтрингБилдер не потокобезопасный он работает быстрее, поэтому чаще всего используют именно этот класс.

    Методы:

    Delete (int start, int end)

    DeleteCharAt (int index) – удаляет символ в позиции index

    Insert (int offset, String str) -вставляет строку str в позицию offset

    Replace (int start, int end, String str) – заменит все символы начиная с позиции start до end позиции на str

    Reverse () – меняет порядок всех символов на противоположный

    Substring (int start) – вернет подстроку начиная с позиции start

    Substring (int start, int end) – вернет подстроку, начиная с позиции start до позиции end

    1. Логические операторы.

    Логические операции применяются к операндам с помощью логических операторов.

    Операции:

    Логическое отрицание – NOT или инверсия – знак ! – применяется к одному операнду

    Логическое И – AND или конъюнкция, символ & (возвращает true если оба операнда true)

    Логическое или – OR дизъюнкция, символ | (возвращает true если хотя-бы один из операндов true)

    Исключающее или – XOR строгая дизъюнкция, символ ^ (возвращает true если операнды разные)

    Приоритет:

    1. !

    2. &

    3. ^

    4. |

    5. &&

    6. | |

    6) char

    7) Неизменяемые типы

    Все, что используется с модификатором final – неизменяемое.

    От final класса нельзя наследоваться.

    Класс String неизменяемый

    Все классы-обертки неизменяемые: Integer, Byte, Character, Short, Boolean, Long, Double, Float, BigInteger, BigDecimal

    Бонус:

    Максимальное количество вложенных массивов – 255

    Максимальная длина массива – положительная часть int

    Если попытаться присвоить нулевую обертку обратно в примитив будет выброшено исключение

    Char + short = int


    написать администратору сайта