Сообщения

Interview questions

Изображение
+1. JVM memory areas. Thread safe memory areas, Garbage collector working principle, Java reference types +2. SOLID +3. Collection API: How does HashMap work under the hood, hash collision, Concurrent HashMap +4. Equals and HashCode contract 5. Thread, Volatile vs Synchronized, atomic variables(CAS-compare and swap). How to prevent deadlock. Deadlock vs livelock. Reentrant lock. 6. Error vs Exception 7. Immutable class(how to make object properties immutable, immutable collections) 8. DB index type(clustered, non clustered, composite) 9. DB normalization and denormalization 10. RDBMS vs non RDBMS 11. ACID vs BASE 12. Hash eviction policy(TTL, LRU, FIFO, LFU, MRU, random replacement, ARC). Problem: we have 2GB memory, how to store 15GB data in this cache 13. entity lifecycle 14. dirty check, flush 15. cascade types 16. n+1 problem (entity graph, join fetch) 17. lazy initialization exception 18. idempotency, safe in rest methods 19. IOC, DI, Proxy 20. AOP(cross cutting concerns) 21. comm...

Interview preparation

  JVM nədir? JVM (Java Virtual Machine) — Java proqramlarının işlədiyi virtual mühitdir. Sadə dillə desək, JVM sənin yazdığın Java kodunu (yəni .java faylını) kompilyasiya edildikdən sonra yaranan bytecode-u ( .class faylları) oxuyur və icra edir. JVM-in əsas məqsədi "Write once, run anywhere" prinsipini təmin etməkdir. Yəni sən eyni Java kodunu yazırsan, fərqli əməliyyat sistemlərində (Windows, Linux, macOS) heç dəyişiklik etmədən işləyir, çünki hər sistem üçün ayrıca JVM var. JVM necə işləyir? JVM-in işləmə prosesi 3 əsas mərhələdən ibarətdir: Kompilyasiya mərhələsi (Java Compiler) javac sənin yazdığın .java faylını götürür və onu bytecode -a ( .class faylı) çevirir. Bu bytecode platformadan asılı deyil. Yəni Windows-da da, Linux-da da eyni fayl işləyəcək. Class Loader JVM işə düşəndə lazımi .class fayllarını və ya JAR paketlərini yaddaşa yükləyir. ClassLoader dinamik yükləmə edir, yəni hansı class-a ehtiyac varsa, o anda yüklənir. Bu, yaddaşın o...

yaml2

  logging : level : ROOT : WARN az.kapitalbank.atlas : INFO management : endpoints : web : exposure : include : [ "env" , "health" , "info" , "refresh" ] health : consul : enabled : false vault : enabled : false spring : application : name : ms-account-transfer-processor messages : basename : lib-common-i18n/messages encoding : UTF-8 cloud : vault : enabled : false consul : enabled : false openfeign : client : config : default : connect-timeout : 5000 read-timeout : 10000 logger-level : FULL okhttp : enabled : true kafka : bootstrap-servers : globalsearch-pre-kafka-zookeeper01.kapitalbank.az:9092 consumer : bootstrap-servers : globalsearch-pre-kafka-zookeeper02.kapitalbank.az:9092 key-deserializer : org.apache.kafka.common.serialization.StringDeserializer ...