yoklateknik mülakat

Mobil Kt Android Memory Context Leaks Mülakat Soruları

75 doğrulanmış Mobil Kt Android Memory Context Leaks mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Kt Android Memory Context LeaksZorluk 1
Android'de Activity context ile Application context arasındaki temel pratik fark nedir?
  • aFark yoktur; her ikisi de her durumda birbirinin yerine kullanılabilir. İkisi de altta aynı Context temel sınıfının düz birer örneğidir.
  • bApplication context temalı layout inflate edebilir ama Activity context edemez.
  • cActivity context sadece Fragment içinde kullanılabilir, Activity içinde asla kullanılamaz.
  • dActivity context o Activity'nin lifecycle'ına bağlıdır; Application context ise süreç yaşadığı sürece yaşar.
Açıklama:Activity context, kendi Activity'siyle birlikte yok edilir; onu Activity'nin ömründen daha uzun tutmak klasik bir leak kaynağıdır.
Kt Android Memory Context LeaksZorluk 1
Bir singleton, ileride dialog gösterebilmek için init()'e geçirilen bir Activity referansını saklıyor. Risk nedir?
  • aRisk yoktur; singleton'lar her zaman hemen garbage collect edilir. Elle yönetilen bir ömrü olmayan her nesne, scope'u biter bitmez geri kazanılır.
  • bSingleton, Activity'den daha uzun yaşar; bu yüzden onu (ve referans verdiği her şeyi) yok edilmesi gerektikten sonra da canlı tutar.
  • cActivity derlenemez çünkü singleton'lar parametre kabul edemez.
  • dDialog, referanstan bağımsız olarak her zaman anında çöker.
Açıklama:Bir singleton'ın ömrü tek bir Activity'ye değil sürece bağlıdır; içine Activity referansı saklamak onun garbage collect edilmesini engeller.
Kt Android Memory Context LeaksZorluk 1
Kotlin'de non-static (inner) bir class, sarmalayan (enclosing) instance'ına neden örtük bir referans tutar?
  • aÇünkü bir inner class instance'ı belirli bir dış instance'a bağlıdır ve onun üyelerine ihtiyaç duyar.
  • bÇünkü Kotlin her class'ın dosyadaki her başka class'a referans tutmasını zorunlu kılar.
  • cÇünkü inner class'lar her zaman tüm uygulama genelinde paylaşılan singleton'lardır. Bu, Kotlin derleyicisi tarafından her nested class bildirimi için zorunlu kılınır.
  • dÇünkü derleyici bu referansı sadece debug build'lerde loglama için ekler.
Açıklama:Dış-instance erişimi gereken sıradan bir nested class, o dış instance'a örtük referans tutar; inner nesnelerin sarmalayan Activity'yi leak etmesinin sebebi budur.
Kt Android Memory Context LeaksZorluk 2
Bir Activity, bir buton üzerine anonim bir View.OnClickListener kaydediyor. Bu anonim listener örtük olarak neye referans tutar?
  • aHiçbir şeye; anonim nesneler asla dış referans tutmaz.
  • bSadece buton view'ına, Activity'nin kendisine asla.
  • cAndroid framework'ünün global ClassLoader'ına. Uygulamadaki her class'ı yükleyen tek paylaşılan bir instance'tır.
  • dSarmalayan Activity instance'ına, çünkü anonim class kendi sarmalayan scope'unu yakalar.
Açıklama:Bir Activity metodu içinde oluşturulan anonim bir inner class, isimli bir inner class gibi, sarmalayan Activity instance'ını örtük olarak yakalar.
Kt Android Memory Context LeaksZorluk 1
Bellek sızıntılarını önleme bağlamında WeakReference'ın genel amacı nedir?
  • aBir nesnenin hiçbir koşulda garbage collect edilmemesini garanti etmek.
  • bHerhangi bir nesneyi otomatik olarak singleton'a dönüştürmek. Bu dönüşüm, referans ilk okunduğunda şeffafça gerçekleşir.
  • cBir nesneye, o nesnenin garbage collect edilmesini engellemeden erişebilmek.
  • dReferans verilen nesnenin anında garbage collect edilmesini zorlamak.
Açıklama:Bir WeakReference, kodun bir nesneye (hâlâ varsa) erişmesine izin verir ama güçlü referans sayılmaz — daha kısa ömürlü bir şeye (bir Activity gibi) daha uzun ömürlü bir yerden referans tutarken faydalıdır.
Kt Android Memory Context LeaksZorluk 2
Bir Activity'den Handler, postDelayed(runnable, 60_000) ile bir Runnable gönderiyor ve Activity 2 saniye sonra yok ediliyor. Runnable non-static bir inner class ise ne olur?
  • aActivity yok edilir edilmez Runnable otomatik olarak iptal edilir.
  • bActivity yok edildiğinde uygulama anında çöker. Runtime, yok edilmiş bir Activity'yi anında ölümcül bir hata kaynağı olarak görür.
  • cHandler bekleyen mesajı hemen sessizce yok sayar.
  • dHandler'ın kuyruğundaki bekleyen mesaj, Runnable'ı — ve yok edilmiş Activity'yi — mesaj işlenene kadar, yaklaşık bir dakika, canlı tutar.
Açıklama:Handler'ın kuyruğundaki bekleyen bir mesaj kendi Runnable'ına referans tutar; non-static inner bir Runnable, mesaj işlenene ya da kaldırılana kadar Activity'yi canlı tutar.

2400 soruluk Mobil bankasında kendini sına.

Mülakata başla