Java
7. Тестираш формуляра за добавяне на нови продукти в администраторския панел. Създаваш нов продукт, натискаш бутона Запази и виждаш бял празен екран. Опишете следващите си действия.
```java import java.util.*; import java.lang.*; import java.io.*; class Codechef { public static void main (String[] args) throws java.lang.Exception { var autoNumbers = List.of(List.of("A123BC", "B421FT"), List.of("O543EC","B421FT", "I222OA")); autoNumbers.stream().flatMap(Collection::stream).forEach(System.out::println); Map<String, String> numberMap = autoNumbers.stream().flatMap(Collection::stream).collect(Collectors.toMap( n -> n, n -> n.replaceAll("[^0-9]", ""))); System.out.println(numberMap); } }
Разкажи ми за паметта на JVM: от какво се състои и как се почиства.
Сравнете производителността на следните фрагменти код, които копират елементи от масив от Integer към масив от int и обратно, включително случаите, когато се създават нови обекти Integer от стойности int: ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { x[i] = y[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = x[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = new Integer(x[i]); } } ``` Анализирайте и обяснете разликите в производителността и поведението между тези подходи.
Как се справяте с Linux на ниво команден ред? Срещали ли сте проблеми, например, когато портът е зает?
Коя колекция да използвате за топ 10 най-скъпи стоки в реално време с поддръжка на сортиран списък?
Реализирайте LRU кеш с изтриване на стари стойности (основна реализация)
В какъв ред трябва да поставите блоковете catch (например, FileNotFoundException и IOException)?
Имали ли сте опит с домейни във финтех — плащания, финанси, фактуриране, интеграция?
Разкажете за йерархията на изключенията в Java
Кога трябва да прилагате принципа на Dependency Inversion и кога не (връзка с YAGNI)
[име] попита: разкажете за себе си и последния си проект, свързан с финанси
Задача Дадено: CREATE TABLE profile ( id BIGSERIAL PRIMARY KEY, nickname VARCHAR, registered_at TIMESTAMP ); CREATE TABLE post ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT REFERENCES profile (id), body TEXT, inserted_at TIMESTAMP, likes_count INT -- брой харесвания ); CREATE TABLE subscription_count ( profile_id BIGINT REFERENCES profile (id) UNIQUE, followers_count INT, -- брой последователи following_count INT -- брой следващи ); Изисква се: select p.id, sc.followers_count from post p join subscription_count sc on sc.profile_id = p.owner_id where sc.followers_count > 500 -- Индекс: create index on post (owner_id) -- Запитване: select * from post where likes_count > ? AND owner_id = ?;
Кои scope-ове има в Spring? Какво е singleton scope?
Разкажи за CAP теоремата. Какво е и за какво служи?
Какъв е основният проблем на тази реализация - Неефективна употреба на фиксирания пул от нишки - Проблеми с взаимодействието на споделените ресурси - Неправилното включване на блокиране може да доведе до deadlock. - Неправилно ниво на синхронизация - Няма проверки на всички нишки преди резултата - Няма явен конструктор Код: import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; class RecyclingBinCounter { private int binCount; private final ReentrantLock lock = new ReentrantLock(); public void incrementBins() { lock.lock(); try { binCount++; } finally { lock.unlock(); } } public int getBinCount() { return binCount; } } class RecyclingManager { public static void main(String[] args) { RecyclingBinCounter counter = new RecyclingBinCounter(); ExecutorService service = Executors.newFixedThreadPool(3); for (int i = 0; i < 3; i++) { service.submit(() -> { for (int j = 0; j < 1000; j++) { counter.incrementBins(); } }); } service.shutdown(); while(!service.isTerminated()) {} System.out.println("Total bins collected: " + counter.getBinCount()); } }
Какво прави процеса наистина Agile, а не просто чести срещи?
Как се прехвърляха данните във вашата аналитична система от други услуги?
Как беше конфигуриран Kafka за обработка на голям поток от събития? Един топик с партиции или много топици?
Защо ExecutorService е популярен? Какво е предимството му пред създаването на нишки директно?