Бонусное задание | 10 лекция | 7 уровень

7 уровень, 10 лекция
Открыта

— Здорово, боец!

— Здравия желаю, товарищ капитан!

— У меня для тебя шикарная новость. Вот тебе задания для закрепления полученных навыков. Выполняй их каждый день, и твои навыки будут расти с неимоверной скоростью. Они специально разработаны для выполнения их в Intellij IDEA.

9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Общий список
1. Изменить класс Solution так, чтобы он стал списком. (Необходимо реализовать интерфейс java.util.List). 2. Список Solution должен работать только с целыми числами Long. 3. Воспользуйтесь полем original. 4. Список будет использоваться нитями, поэтому позаботьтесь, чтобы все методы были синхронизиро
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Comparable
Реализуйте интерфейс Comparable в классе Beach. Пляжи(Beach) будут использоваться нитями, поэтому позаботьтесь, чтобы все методы были синхронизированы. Реализовать метод compareTo так, чтобы он при сравнении двух пляжей выдавал число, которое показывает что первый пляж лучше(позитивное число)
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Аптека
Реализуй интерфейс Runnable в классах Apteka и Person. Все нити должны работать пока не isStopped. Логика для Apteka: drugsController должен сделать закупку случайного лекарства (getRandomDrug) в количестве (getRandomCount) и подождать 300 мс. Логика для Person: drugsController должен сделать продаж
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Синхронизированные методы
Установить модификатор synchronized только тем методам, которым необходимо. Объект класса Solution будет использоваться нитями.
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Лишняя синхронизация
synchronized существенно замедляет программу, поэтому убери избыточность synchronized внутри методов
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Глажка
И снова быт... Поставьте один synchronized, чтобы diana и igor гладили по очереди, ведь утюг всего один! Подсказка: использовать блокировку на уровне класса.
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
ApplicationContext
ApplicationContext будет доступен множеству нитей. Сделать так, чтобы данные не терялись: подумай, какое ключевое слово необходимо поставить и где.
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Банкомат
Разберись, как работает программа Во время тестирования лог содержит следующее: ..... Добавляем 100, на счету 1100 Добавляем 100, на счету 1200 Тратим 1000, на счету 100 Недостаточно денег ..... Создан баг: При списании денег со счета теряются деньги Найти и исправить ошибку
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Транзакционность
Сделать метод joinData транзакционным, т.е. если произошел сбой, то данные не должны быть изменены. 1. Считать с консоли 2 имени файла 2. Считать построчно данные из файлов. Из первого файла - в allLines, из второго - в forRemoveLines В методе joinData: 3. Если список allLines содержит все строки из
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Посчитаем
1. Сделай так, чтобы результат успел посчитаться для всех элементов массива values НЕ используя Thread.sleep в методе main(String[] args). 2. Исправь synchronized блок так, чтобы массив values заполнился значением 1

— Те задания были для духов. Для дедушек я добавил бонусные задания повышенной сложности. Только для старослужащих.

9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
CRUD
CrUD - Create, Update, Delete Программа запускается с одним из следующих наборов параметров: -c name sex bd -u id name sex bd -d id -i id Значения параметров: name - имя, String sex - пол, "м" или "ж", одна буква bd - дата рождения в следующем формате 15/04/1990 -c - добавляет человека с заданными п
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
CRUD 2
CrUD Batch - multiple Creation, Updates, Deletion Программа запускается с одним из следующих наборов параметров: -c name1 sex1 bd1 name2 sex2 bd2 ... -u id1 name1 sex1 bd1 id2 name2 sex2 bd2 ... -d id1 id2 id3 id4 ... -i id1 id2 id3 id4 ... Значения параметров: name - имя, String sex - пол, "м" или
9
Задача
Java Core,  7 уровень,  10 лекция
Недоступна
Ресторан
1.Разберись, что делает программа. Официант почему-то не относит приготовленные блюда назад к столам :( 2.Исправь ошибку. Подсказка: это одна строчка
Комментарии (131)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
pchelovod195018 уровень, Москва
вчера, 13:05
В задаче CRUD2 не понял зачем volatile для allPeople и synchronized в case. Решение всё равно однонитевое. Кто-нибудь может объяснить???????????
Вадим19 уровень, Одесса
9 января, 16:59
У меня лично вопрос к разработчикам, как валидатор это дело обрабатывает? Своих методы добавлять можно? В Класс приложения, в другие классы? И то как много кода становится, хотелось бы это как то разделить.
pchelovod195018 уровень, Москва
вчера, 23:01
Со статическими методами всё нормально проходит. В main можно красиво оставить только switch/case по args[0]. Всю обработку я вынес в отдельные статические методы.Правда я так и не понял зачем volatile для allPeople и synchronized в case. Решение всё равно однонитевое. Сможешь объяснить???????????
8 января, 22:01
Задача CRUD 2 - танцы с бубном, чтобы угодить валидатору.
pchelovod195018 уровень, Москва
вчера, 22:56
Не, не танцы, просто условий много. А так всё нормально. Не понятно только зачем volatile для allPeople и synchronized в case. Решение всё равно однонитевое. Интересно кто-нибудь сможет объяснить зачем они нужны?
Даниил18 уровень
7 января, 20:31
ВНИМАНИЕ!!! Задача CRUD. Какого-то сами знаете кого при выборе в плагине в IDEA эта задача была первой, не обратил внимание и начал решать. В итоге 3 часа такое ГОВНОКОДИЛ, что аж самому реально страшно стало. А потом понял что валидатор вообще ни один пункт (кроме тех которые со старта были правильные, даже ничего не дописывая) не принимает. Всё по 2 раза проверил - работает. В итоге полез в "обсуждение" к этой задаче. Там ДОБРЫЕ ЛЮДИ подсказали и показали в чём проблема! Задача реально хреново поставлена, так что советую сразу дуть туда и смотреть что от вас хотят))) P.S. После того как понял в чём проблема ещё час исправлял.
Даниил18 уровень
8 января, 18:46
Зато ой как было проще на основе задания CRUD делать задание CRUD2))) Задание Ресторан показалось вообще не вообразимым, но задавшись простым логическим вопросом всё быстро стало на свои места))) Итог: на этот блок задач ушло 2 вечера и практически полный рабочий день (непосредственно на работе)
Dmitriy 18 уровень, Москва
26 декабря 2018, 16:04
Задача "Ресторан" класс! Навороченная реализация по сравнению с предыдущими задачами. Долго разбирался в коде искал сложную ошибку какую то связанную с синхронизацией потоков, в итоге всё как часто и бывает оказалось проще.
Pavlic Morozov (pashok09i)20 уровень, Екатеринбург
16 декабря 2018, 07:06
в intelij idea почему то в начале выпали задачи со звездочкой, я это понял не сразу и подумал, что все приплыли, цветочки кончились :DD
Ольга Баскакова19 уровень, Москва
24 декабря 2018, 14:32
Во-во, в ужасе возилась с первыми тремя задачками и всё думала: тогда что же будет в задачах посложнее. И только теперь случайно обнаружила, что это они и были.)
Даниил18 уровень
7 января, 20:33
Та же история. Я уже подумал "может ну его на* это программирование если такая задачка со старта")))
Серёга18 уровень
12 декабря 2018, 05:25
Последняя задача аху**на!
Andrii Gorshunov25 уровень
10 декабря 2018, 22:19
Да здравствуют наркоманские задачки: Общий список Транзакционность - из комментариев понятно стало вроде что это, решение задачи было сделано строго по требованиям в самой задаче. Ресторан - спасибо за потерянные 1.5 часа. Нужно добавить строчку CRUD - описание задачи сильно страдает пзц. Во-первых, о этих параметрах не слова. Для таких как я в танке, вытянул коммент ниже: //Run->Edit configurations...-> в Program arguments ввести параметры напр -c Миронов м 15/04/1990 //Можно еще так: // BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // args = reader.readLine().split(" "); ПОМНИТЕ чтобы удалить BufferedReader при валидации. Во-вторых: при таких параметрах ввода результат ожидается таким: -c Миронов м 15/04/1990 ... вывод: 2 -u 1 МОРЖЖ м 01/01/1987 ... без вывода, но должен замещать данные из списка(лично проверяйте) -d 1 ... тут надо и sex и name и birthday заменить на null. Сам объект не прокатит (без вывода на экран) -i 0 ... вывод: Иванов Иван м 12-Dec-2018 В добавок args[0], args[1], args[2] это обычный массив типа String. Не удивляюсь почему всего 10 тыс человек решили эту задачу. CRUD 2 тоже норм, на сегодняшний день решило ее 9159 учеников. В целом круто, спасибо. Потратил 3 дня решая этот блок задач. Двигаемся дальше!
Vitaly Khan35 уровень
2 декабря 2018, 00:53
Задача Банкомат легко решается с точки зрения удовлетворения валидатора. Но добиться корректной синхронизации не мог очень долго! Пока не понял, в чем дело, иногда проскакивала неправильная последовательность выполнения команд... Остались вопросы по синхронизации в задаче Посчитаем. Более подробно под каждой из этих задач написал.
Дмитрий20 уровень
16 ноября 2018, 10:31
Задача 1721 "Транзакционность" Решил, но так и не понял в чем заключается транзакционность метода joinData()?
Bazi4ek19 уровень, Минск
29 декабря 2018, 05:29
"Транзакционность" как мне показалось, была в задаче про банкомат, в методах, где проводились операции со счетом, там сперва потренировались на BigDecimal newBalance, который в конце одним действием присвоили BigDecimal balance. Что то подобное сделал и в этой задаче, а как в комментах увидел решение в две строчки, сразу понял что это не обязательно ))