Java Interview Questions: OOP, Collections, Concurrency & Database

Computers4.8 KB

Java Interview Questions on OOP Concepts

  • What is the difference between loose coupling and tight coupling?

İki nesne birbirine çok fazla bağlıysa, yani biri değiştiğinde diğerini de değiştirmek gerekiyorsa tight coupling; değiştirmek gerekmiyorsa, birbirinden bağımsızsa loose coupling deriz.

  • Cohesion and coupling

Cohesion is defined as the degree of relationship between elements of the same module. Coupling is defined as the degree of interdependence between the modules.

Abstract Class vs Interface

Abstract class içinde normal method kullanabiliriz; interface'de ise sadece soyut method bulunur (body olmaz). Interface'ler genellikle sıfat isimleriyle adlandırılır ve bir class'ın ne yapması gerektiğini belirtir.

Aggregation, Association, Composition

  • Association: İki nesne arasında has-a ilişkisi.
  • Composition: Bir nesne diğer nesnenin lifecycle'ını yönetiyorsa; o öldüğünde diğeri de ölüyorsa.
  • Aggregation: Bir nesne diğerine bağlıdır, ancak biri öldüğünde diğeri ölmez.

Java Interview Questions on Collections

  • List: Sıralı (ordered)
  • Set: Sırasız (unordered)
  • Map: Key-value yaklaşımı
  • Synchronized collection: Bütün collection'ı kilitler; tek bir thread'de güncellenir, multithread'de verimli çalışmaz.
  • Concurrent collection: Sadece değiştirilen kısma lock atar; multithreaded çalışabilir.
  • LinkedList over ArrayList: İlk ve son elemana erişim sık ise LinkedList iyidir.
  • ConcurrentHashMap vs Hashtable: Concurrent vs synchronized collections arasındaki farkla aynıdır.

Java Interview Questions on Concurrency

  • notify: Sadece bir thread'e uyandırma mesajı gönderir. notifyAll: Bütün thread'lere gönderir.
  • Race condition: İki thread aynı anda shared data'ya erişip çalıştırmaya çalışırsa oluşur; lock konularak erişim kısıtlanabilir.
  • Deadlock: İki thread'in ihtiyaç duyduğu kaynak başka bir yerde kilitliyse ve ilerleme durmuşsa oluşur.

Java Interview Questions on Database

  • SQL injection: Parametrized query kullanarak, password hashing yaparak ve database input'unu filtreleyerek önlenir.
  • WHERE (pre-filter) ve HAVING (post-filter) farkı.

ACID

  • Atomicity: Transaction bir bütündür; birden fazla database modify ediliyorsa aynı anda başarılı veya başarısız olur.
  • Consistency: Tutarlılık; verilerin tüm database'lerde tutarlı ve eşit olması.
  • Isolation: Bir transaction'ın diğerinden etkilenmemesi.
  • Durability: Sistem arızasında transaction'ın bir önceki duruma geri getirilmesi.
  • DROP: Tüm collection veya tabloyu siler.
  • TRUNCATE: Tümünü siler.
  • DELETE: Bir veya daha fazla kaydı siler.

Aggregate window functions: SUM, COUNT, AVG, MAX, MIN.

SAGA Pattern

Distributed transaction management yönetir. Saga execution controller yönetir; sıkıntı durumunda tüm sistemin rollback yapmasını sağlar.

Download

PDF Word HTML