Публікації

30. Соб-2 Как установить бит в единицу в битовой маске? Как установить бит в ноль в битовой маске? Как получить значение определенного бита в битовой маске? Что такое ленивое вычисление выражения? Чем отличается использование && и & для типа boolean?

  6. Як встановити біт в одиницю в бітовій масці? Застосувати бітовий оператор | ( АБО ) до маски, в яку потрібно внести зміни, та маски із встановленою одиницею в потрібному біті. Наприклад: int mask = mask | 0010 0000.     0 000 0 1 1 0 ( вихідна маска)   | 0010 0000 (маска з нулів з одиницею в потрібному біті)      ------------     0010 0110     7. Як встановити 0 в бітовій масці? Застосувати бітовий оператор & ( І ) до маски, в яку потрібно встановити 0 і маски, в якій в потрібному біті встановлено 0 і решту бітів займають одиниці. Наприклад: int mask = mask & 1011 1111.     0111 1100 ( вихідна маска) & 1011 1111 (маска з одиниць з нулем в потрібному місці)      ------------     0011 1100   8. Як отримати значення певного біта в бітовій масці? Застосувати бітовий оператор & (І) до вихідної маски і маски, в якій всі нулі і одиниця в місці потрібного біта, результат порівняти з нулем. Наприклад: Boolean b = (mask & 101

30. Соб. Что такое NaN? Как получить бесконечность в Java? Как проверить, что в результате вычисления получилась бесконечность? Что такое битовая маска? Где применяют битовые маски?

  1. Що таке NaN ? NaN ( англ. Not a Number ) – числовий тип даних, який встановлюється для «не чисел» (невизначеного результату математичної операції). NaN зазвичай позначає невизначений результат недійсної операції (наприклад 0/0) та нерепрезентативних значень (н-д операція отримання квадратного кореня з від’ємного числа).   У Java цей стандарт реалізують числові типи з рухомою крапкою double , float . Класи-обгортки цих типів містять константи Double . NaN I Float . NaN відповідно. В Java також отримується при: -           Будь-якій операції, де є NaN ; -           Конвертації числа з рядка, в якому є літери; -           Нескінченність мінус нескінченність; -           Плюс/мінус нескінченність поділити на плюс/мінус нескінченність; -           Плюс/мінус нескінченність помножити на нуль.   2.   Як отримати нескінченність в Java ? Щоб отримати нескінченність, можна використати константи типу Double : Double.POSITIVE_INFINITY; Double.Negative_INFIN

29. Соб. Как примитивные типы приводятся к непримитивным аналогам? Как непримитивные типы приводятся к примитивным? Как сравниваются примитивные и непримитивные типы? Всегда ли создается новый объект при операции autoboxing? Как работает кэширование при операции autoboxing? Для каких типов и/или значений работает кэширование?

  5. Як примітивні типи приводяться до не примітивних аналогів? Компілятор використовує метод valueOf() чтобы перетворити примитивні типи у відповідні об’єкти. int x = 3; Integer y = Integer.valueOf(x);   6. Як непримитивні типи приводяться до примітивних? За допомогою методів intValue (), doubleValue (), …, Java -компілятор перетворює об’єкти у відповідні примітиви: Boolean b = Boolean.FALSE; boolean a = b.booleanValue();   але: Integer x = null; int y = x.intValue(); - вилетить виняток java.lang.NullPointerException.   7. Як порівнюються примітивні та не примітивні типи? За допомогою «==»   та equals () примітивний та не примітивний типи порівнюються як примітиви за значенням. --- Використання оператора порівняння ==   можливе і для об’єктів класів-обгорток якщо значення, які вони містять є кешованими (від -128 до 127, true / false ), інакше – порівняння значень об’єктів класів –обгорток можливе   за допомогою методу equals () або   obj 1. compareTo (

29. Соб. І Что такое autoboxing? Зачем используется autoboxing? Альтернативы autoboxing? Типы-обертки для примитивных типов mutable или immutable?

  1.                 Що таке autoboxing ? Autoboxing – упакування –   виконуване Java -компілятором автоматичне перетворення значень примітивних типів у об’єкти відповідних їм класів-обгорток. Наприклад, перетворення int на Integer, double на Double тощо. І навпаки, перетворення об’єктів у значення відповідних примітивних типів називається boxing – розпакування. Компілятор Java застосовує авто упаковку коли значення примітивного типу передається як параметр методу, який очікує об’єкт відповідного класу-обгортки або присвоюється змінній відповідного класу-обгортки. Найпростіший приклад автобоксингу: Character ch = 'a';   2.                  Для чого використовується autoboxing ? Для синхронізації, серіалізації, роботою з колекціями та дженериками використовуємо об’єкти,   а не примітивні типи. А utoboxing позбавляє зайвої роботи з перетворення   «вручну» примітивів у обгортки,   автоматизуючи цей процес (і, відповідно, код стає чистіший, більш гнучкий та легший дл

29. Гугл. Горячие клавиши Intellij IDEA

  1.Як засобами Intellij IDEA перейменувати ( rename ) змінну? Shift + F 6 2. Як засобами Intellij IDEA зробити заміну ( replace ) одного коду на інший? Ctrl + Shift + R 3. Як засобами Intellij IDEA зробити так, щоб змінна, на якій стоїть курсор, підсвічувалась? Ctrl + Shift + F 7 4. Як засобами Intellij IDEA перейменувати метод? Shift + F 6 5. Як засобами Intellij IDEA перейменувати клас? Shift + F 6 6. Як засобами Intellij IDEA огорнути частину коду в try - catch ? Ctrl + Alt + T 7. Як засобами Intellij IDEA швидко створити конструктор? Alt+insert -> constructor 8. Як засобами Intellij IDEA   створити geter ’и та setter ’и? Alt + insert -> getter / setter 9. Як засобами Intellij IDEA реалізувати ( implements ) відсутні методи класу? Ctrl + I / Alt + insert   -> Implement Methods 10. Як засобами Intellij IDEA перевизначити методи батьківського класу? Ctrl + O / Alt+insert   -> Override Methods

28. Соб 2. Зачем нужен класс ThreadPoolExecutor? Сколько способов создать нить вы знаете? (Thread, Runnable, Callable) Для чего используется класс Future? В чем преимущества Callable над Runnable? Можно ли отменить выполнение задачи, если использовать класс Future?

  6. Навіщо потрібен клас  ThreadPoolExecutor ? public class ThreadPoolExecutor extends AbstractExecutorService. ExecutorService, виконує кожне надіслане завдання за допомогою одного або кількох об’єднаних потоків, зазвичай створених за допомогою методів Executors. Пули потоків вирішують дві різні проблеми: вони зазвичай забезпечують покращену продуктивність під час виконання великої кількості асинхронних завдань завдяки зменшенню накладних витрат на виклик кожного завдання, і вони забезпечують засоби обмеження та керування ресурсами, включаючи потоки, використовувані під час виконання набору задач. Кожен ThreadPoolExecutor також підтримує деяку базову статистику, таку як кількість виконаних завдань. Щоб бути корисним у широкому діапазоні контекстів, цей клас надає багато настроюваних параметрів. Проте програмістам рекомендується використовувати більш зручні методи фабрики Executors Executors.newCachedThreadPool() (необмежений пул потоків, з автоматичним відновленням потоків), Executor

28. Соб 1. Какие приоритеты нитей бывают? Можно ли остановить нить, снизив ее приоритет до 0? Зачем нужен класс ThreadGroup? В какой группе нитей состоит main-thread? Что такое паттерн ThreadPool?

  1. Які бувають пріоритети ниток? Пріоритет ниток використовується для оптимізації коду.  Встановлюється методом public final void setPriority ( int newPriority ) , де newPriority – число від 1, або Thread . MIN _ PRIORITY (найнижчий пріоритет) до 10 або Thread . MAX _ PRIORITY (найвищий пріоритет). Середній пріоритет 5 ( Thread . NORM _ PRIORITY ) встановлюється за замовчуванням) при створенні нитки .  Встановлений пріоритет є «рекомендацією» для JVM – Java - машина керує нитками за власними алгоритмами. -- public final int getPriority() – отримати пріоритет нитки.     2. Чи можна зупинити нитку, знизивши її пріоритет до 0? Ні, при встановленні пріоритету 0 вилетить виняток IllegalArgumentException, так як допустимий діапазон пріоритетів [1; 10]. Дати рекомендацію планувальнику потоків для зупинки нитки можна використовуючи метод interrupt ().     3. Навіщо потрібен клас ThreadGroup ? ThreadGroup необхідний для захисту потоків від небажаного зовнішньо