Публікації

Показано дописи з 2023

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. Як отримати значення певного біта в бітовій масці? Застосувати бітовий оператор & (І) до вихідної маски і маски...

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

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

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 ), інакше – порівняння значень об’єктів класів –обгорток можливе   за допомогою методу e...

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

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

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() (необмежений пул потоків, з автоматичним відновленням потоків),...

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 необхідний для захист...

28. Гугл 2 Что такое FactoryMethod? Что такое DDD? Что такое TDD? Что такое dump? Что такое Pool?

  6. Що таке FactoryMethod? Factory Method – паттерн проектування, широко використовується в коді Java для  забезпечення високого рівня гнучкості коду - вирішує проблему створення об’єктів продукту без визначення їх конкретних класів. Фабричний метод визначає метод, який слід використовувати для створення об’єктів замість використання прямого виклику конструктора (оператор new). Підкласи можуть перевизначити цей метод, щоб змінити клас об’єктів, які будуть створені. Фабричні методи можна розпізнати за методами створення, які створюють об’єкти з конкретних класів. Хоча конкретні класи використовуються під час створення об’єкта, тип повернення методів фабрики зазвичай оголошується або як абстрактний клас, або як інтерфейс.     7.  Що таке  DDD ? Domain-Driven Design (DDD) – це набір принципів та патернів, які допомагають розробникам створювати елегантні об'єктні системи. При правильному застосуванні  DDD   може призвести до програмних абстракці...

28 Гугл 1 Как получить список живых нитей из группы ThreadGroup? Как получить список мертвых нитей из группы ThreadGroup? Аналоги ThreadPoolExecutor? Что такое ThreadWorker? Что такое ThreadPool?

  28.  1. Як отримати список живих ниток з групи ThreadGroup ? Метод public int enumerate( Thread [] list) Копіює у вказаний масив кожен активний програмний потік (нитку) у цій групі потоків та її підгрупах. Виклик цього методу поводиться точно так само, як і виклик enumerate(list, true). Параметри: list - масив, у який потрібно помістити список потоків Повертає: кількість потоків, поміщених у масив Винятки: SecurityException - якщо checkAccess визначає, що поточний потік не може отримати доступ до цієї групи потоків                                 Метод public int enumerate( Thread [] list, boolean recurse) Копіює у вказаний масив кожен активний потік у цій групі потоків. Якщо рекурсія має значення true, цей метод рекурсивно перераховує всі підгрупи цієї групи потоків і також включає поси...