Mid Java
Software AG
Sofia
Mid Java
1 day
Difficult
Positive experience

I accepted the offer
Received answer
How did the interview go?
Интервюто продължи няколко часа, като имаше двама интервюиращи на него Лйида на екипа и Синиър човек, първо питаха за опита и след това почнаха техническото интевю, което продължи към два часа два час и половина някъде.
Interview questions and tests
1. Java Core / OOP Concepts
Обясни принципите на ООП (Encapsulation, Inheritance, Polymorphism, Abstraction).
Как работи garbage collection в Java? Разкажи за различните GC алгоритми.
Разлика между == и .equals() при сравняване на обекти.
Какво е final keyword? Къде и как се използва?
Какво представлява immutability и как се постига в Java?
2. Collections Framework
Кога ще използваш ArrayList vs LinkedList?
Как работи HashMap? Обясни хеширане и колизии.
Как да направиш един HashMap thread-safe?
Каква е разликата между Set, List и Queue?
3. Concurrency / Multithreading
Каква е разликата между Runnable и Callable?
Как работи synchronized? Какви са проблемите при конкурентност?
Какво е volatile keyword?
Обясни какво е Thread Pool и как се използва.
Разликата между wait(), notify() и notifyAll().
4. Exception Handling
Каква е разликата между checked и unchecked exceptions?
Кога ще използваш try-with-resources?
Как да създадеш собствен Exception клас?
5. Java 8+ Features
Какво са lambda изрази? Дай пример.
Обясни Stream API и разликата между intermediate и terminal операции.
Какво представляват Optional и кога да го използваш?
6. Design Patterns (основни)
Обясни Singleton, Factory и Observer патърни.
7. Testing
Какво е unit testing и кои инструменти ползваш (например JUnit)?
Разлика между mock и stub.
Какво е TDD (Test Driven Development)?6. Spring Framework (основи)
Какво е Dependency Injection (DI) и как се реализира в Spring?
Обясни принципите на ООП (Encapsulation, Inheritance, Polymorphism, Abstraction).
Как работи garbage collection в Java? Разкажи за различните GC алгоритми.
Разлика между == и .equals() при сравняване на обекти.
Какво е final keyword? Къде и как се използва?
Какво представлява immutability и как се постига в Java?
2. Collections Framework
Кога ще използваш ArrayList vs LinkedList?
Как работи HashMap? Обясни хеширане и колизии.
Как да направиш един HashMap thread-safe?
Каква е разликата между Set, List и Queue?
3. Concurrency / Multithreading
Каква е разликата между Runnable и Callable?
Как работи synchronized? Какви са проблемите при конкурентност?
Какво е volatile keyword?
Обясни какво е Thread Pool и как се използва.
Разликата между wait(), notify() и notifyAll().
4. Exception Handling
Каква е разликата между checked и unchecked exceptions?
Кога ще използваш try-with-resources?
Как да създадеш собствен Exception клас?
5. Java 8+ Features
Какво са lambda изрази? Дай пример.
Обясни Stream API и разликата между intermediate и terminal операции.
Какво представляват Optional и кога да го използваш?
6. Design Patterns (основни)
Обясни Singleton, Factory и Observer патърни.
7. Testing
Какво е unit testing и кои инструменти ползваш (например JUnit)?
Разлика между mock и stub.
Какво е TDD (Test Driven Development)?6. Spring Framework (основи)
Какво е Dependency Injection (DI) и как се реализира в Spring?
