This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implement a service registry, which is a database of services, their instances and their locations. | |
1 - Register instances | |
It should be possible to register an instance, identified by an address | |
Each address should be unique, it should not be possible to register the same address more than once | |
Service Registry should accept up to 10 addresses | |
2 - Random invocation | |
Develop an algorithm that, when invoking the Service Registry's get() method multiple times, should return one backend-instance choosing between the registered ones randomly. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
example | |
class UserDto { | |
Int id; | |
String name; | |
} | |
Integer threadsNumber = 4; | |
public class Worker implements Runnable { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Бинарное дерево | |
Реализовать простейшее сортированное бинарное дерево интов (без балансировки), у которого есть две операции: | |
* Вставка | |
* Нахождение *диаметра* | |
Где *диаметр* - расстояние между двумя наиболее удалёнными узлами дерева. | |
Реализовать за приемлемое время/память, обосновать |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. Отличие Future<T> от CompletableFuture<T> | |
2. Сложность HashMap и TreeMap, когда что выгоднее использовать | |
3. BTree как устроено, как хранятся индексы, какой размер обычно листа на диске в BTree, как локи работают в BTree | |
4. Volatile, happens before, mutual exclusion рассказать | |
5. Задача написать реализацию стека, доп задание сделать стек потокбезопасным без локов (LockFree) | |
6. Рассказать про реордеринг кода JIT компилятором и процессором | |
7. Отличие шардирования от репликации | |
8. Как хранятся данные в колоночных базах данных внутри и зачем они нужны | |
9. Как устроен редис, как там сделано шардирование, что такое cache consistency in distributed system, | |
как быстро добавить несколько новых шардов в редис кластер, без перераспределения старых данных |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. как устроен double внутри | |
2. сколько занимают памяти double, int, char, boolean | |
3. написать hashMap put и get методы как бы ты писал в продакшене | |
4. рассказать про ошибки в коде и переписать этот метод, чтобы в однопотчном режиме работало | |
public class Account { | |
private long id; | |
private double amount; | |
public syncronized void operation(Account to, double amount) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Есть последовательность запросов пользователей, каждый запрос — | |
это пара (time, userId), запросы всегда приходят в отсортированном | |
по времени порядке. | |
Нужно уметь быстро отвечать: "сколько за последние k секунд было | |
пользователей, которые задали >= limit запросов". | |
*/ | |
class UserStatistics { | |
Map<Long, List<Long>> usersFrequencies; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Anton Skub’ev, [11.05.21 14:58] | |
Написать аналог Enum (как если бы до Java 1.5) на примере какого-нибудь перечислимого списка, например списка валют. | |
Нужно: | |
- самое важное требование, которое следует удовлетворять в процессе всей реализации - расставить как можно меньшее количество граблей для разработчика, который в будущем будет добавлять новые значения | |
- иметь фиксированный список значений, задаваемый на этапе компиялции | |
- иметь строгую типизацию значений | |
- уметь безопасно сравнивать значения по == | |
- получать все значения | |
- иметь неизменяемый ordinal (порядковый номер с 0 в порядке объявления значений) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package codeforces; | |
import java.io.BufferedReader; | |
import java.io.IOException; | |
import java.io.InputStreamReader; | |
import java.io.PrintWriter; | |
import java.util.StringTokenizer; | |
/* | |
https://codeforces.com/problemset/problem/?/? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
curl --location --request GET 'http://dev.monopera.com/api/v1/graphics/exchange-rates' \ | |
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1ODQ2Mjg1NjYsInVzZXJfbmFtZSI6ImtrQGtrLmtrayIsImF1dGhvcml0aWVzIjpbIlJPTEVfQ0xJRU5UIl0sImp0aSI6ImQzZmI1NzgwLWNjN2UtNDQyMy1hYTZiLTA3Y2MxOTMzMWMxYyIsImNsaWVudF9pZCI6InVzZXIiLCJzY29wZSI6WyJ1aSJdfQ.UXzr6mZs7QmVuMU_X57ffBpjX5zIU0V83Ye5RVURZW-D5wup0xrYDXBEgmKOl7CHPS83dsaF1xRHzlMSEWUMzMstPADAvp_9nRDO4IR-y6KibGnavaCfQwArV8WA2GMBzwgWUlD19qiW9BbLNIwHtkRt8xpTHFIGik1fBrWuoxg2BXkShkY6TwuuLUwTKw00JTIBhGay-4BuZ9IWYL0B27PjMa5u-HeNb7_lop_9R5pXrd06-k5rNZ9wO5VFB3VCrHVwKPMirdV88A5MMlFcG_v-fdy5D5oUREgvUZJDd8mcH_ntHGKZ2H3nVUl1_PmQIz4OD6P_GkfKLOCira4y8A' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Дана строка, состоящая из букв A-Z: | |
* "AAAABBBCCXYZDDDDEEEFFFAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBB" | |
* Нужно написать функцию RLE, которая на выходе даст строку вида: | |
* "A4B3C2XYZD4E3F3A6B28" | |
* И сгенерирует любую ошибку, если на вход пришла невалидная строка. | |
* | |
* Пояснения: | |
* 1. Если символ встречается 1 раз, он остается без изменений | |
* 2. Если символ повторяется более 1 раза, к нему добавляется количество повторений |
NewerOlder