Публікації

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, цей метод рекурсивно перераховує всі підгрупи цієї групи потоків і також включає поси...

27. Соб.2 Что происходит после вызова метода notifyAll? Какие выгоды получает объект, если он immutable? Что такое «thread-safe»? Что такое «happens-before»? Что такое JMM? Какое исключение вылетит, если вызвать wait не в блоке synchronized?

    27.6  Що відбувається після виклику метода notifyAll? notifyAll () надсилає сповіщення всім ниткам у стані очікування звільнення об’єкта-мютекса; всі нитки пробуджуються; як тільки поточна нитка вийде з блока  synchronized , одна з пробуджених ниток займе мютекс; решта ниток після перевірки умови цикла знов перейдуть у стан очікування (хибне пробудження).   27.7  Які переваги отримує об’єкт, якщо він immutable? Immutable   (незмінний)  об’єкт – це об’єкт, стан якого після створення неможливо змінити (всі поля екземпляру позначені  final ).  Найпростіший приклад –  java . lang . String . Всі методи, які викликаються повертають новий рядок, а не модифікований вихідний. Переваги  immutable -об ’ єктів: 1)        Потокобезпечність – І m - o   не вимагають синхронізації при багато потоковому доступі, їх вільно можна використовувати з різних потоків. 2)     ...

27 Соб.1 Что такое дедлок? Какие вы знаете стратегии, предотвращающие появление дедлоков? Могут ли возникнуть дедлоки при использовании методов wait-notify? Что чаще используется: notify или notifyAll? Метод wait рекомендуется использовать с конструкциями if или while?

    27.1     Що таке дедлок?   Дедлок (англ..  deadlock ) - взаємне блокування – ситуація, при якій два чи більше програмних потоків не можуть продовжити роботу, так як знаходяться в стані очікування ресурсів, зайнятих один одним, і жоден з них не може продовжити роботу. Н-д: Є дві нитки ( thread ), кожній нитці потрібно захопити два мютекси -> перша нитка захопила перший мютекс -> друга нитка захопила другий мютекс -> перша впоралась з роботою, чекає звільнення другого мютексу (у другому ще виконує дії друга нитка) -> друга нитка виконала дії, чекає звільнення першого мютексу (перший зайнятий першою ниткою, яка очікує).    Н-д: менеджер зробив термінове замовлення у постійного постачальника, який працює по передоплаті, керівник забороняє оплачувати рахунок поки не буде прийнятий товар. Нитка бухгалтер взяла рахунок - >  нитка постачальник оформила замовлення - > нитка бухгалтер очікує підтвердження прийняття товару, що...

27. Гугл 2 Як скомпілювати java-файл із консолі? Як запустити java-файл із консолі? Як запустити програму з декількох скомпільованих файлів з консолі? Як створити директорію з піддиректоріями? Як отримати список файлів в директорії за маскою (шаблоном) «*doc»?

27.  6. Як скомпілювати java -файл із консолі? Викликаємо консоль: заходимо в папку де збережено потрібний файл . java ->   затискаємо shift + клацаємо правою клавішею миші на вільному місці папки ->   обираємо «відкрити вікно команд». Компіляція файла: в консолі набираємо команду javac і в якості параметра прописуємо повне ім’я файла (із розширенням). Н-д: javac Main . java Ця команда викличе компілятор, який c компілює вихідний код (якщо у коді немає помилок) і збереже байт-код у файлі з такою ж назвою, але розширенням . class       7. Як запустити java -файл із консолі? Викликаємо консоль як і при компіляції, прописуємо команду java і в якості параметра назву класу ( c компільованого коду, без розширення . class ).   Н-д: java Main Цією командою викликається запускалка java . exe , яка запустить вказану програму.   Якщо в консолі з’ явились кракозябри –   це збите кодування. Прописуємо в консолі ...