Java
Кои класове за настройка на контейнера можеш да посочиш?
Достатъчно ли е това за потокобезопасност, ако в класа има две полета с инвариант (едното е строго по-малко от другото), всяко защитено с AtomicInteger?
Как да осигурим разпределена транзакция по няколко услуги?
Имали ли сте опит с използването на опашки в проектите си?
Можеш ли да дадеш пример за използване на статичен блок в кода?
Трябва ли да разделим таблиците на части (sharding) за подобряване на скоростта на изпълнение на заявките?
Какви са предимствата и недостатъците на използването на Protocol Buffer за сериализация на данни?
Характеристики на използването на @Transactional в Spring. Нива на изолация на транзакциите.
Разкажете ни как беше организиран процесът на разработка на предишното ви работно място — от бизнес нуждата до пускането.
Как се реализира поддръжката на транзакции с помощта на анотацията @Transactional в Spring Framework?
Работили ли сте с интеграцията на Spring Data и Hibernate в проектите си?
Кога и как се извикват статичните функции: от обект или от клас?
Имали ли сте опит с използването на метода parallel в API Stream за паралелна обработка на данни?
Как се определя областта на видимост на обекта Bean при стандартните условия по подразбиране?
Можете ли да обясните механизма на действие на анотацията @SpringBootTest в тестовете на Spring Boot?
Какви подходи съществуват за справяне с нестабилна интеграция, която може да не отговаря от минута до ден?
Каква е разликата в производителността между използването на примитивни типове данни и техните обектни обвивки?
Сравнете производителността на следните фрагменти код, които копират елементи от масив от 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]); } } ``` Анализирайте и обяснете разликите в производителността и поведението между тези подходи.
Използвали ли сте в проектите си компонента ExecutorService за управление на нишки?
Как се извършва обработката на изключения при изпълнение на потокове Stream в Java?