yoklateknik mülakat

Mobil Kt Kotlin Type System Null Safety Mülakat Soruları

75 doğrulanmış Mobil Kt Kotlin Type System Null Safety 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 Kotlin Type System Null SafetyZorluk 1
Bir sınıfı data class olarak tanımlamak otomatik olarak neyi üretir?
  • aDosya dışından örnekleme engelleyen private bir constructor.
  • bSadece varsayılan, parametresiz bir constructor.
  • cequals(), hashCode(), toString() ve copy().
  • dHiçbir annotation gerektirmeden otomatik Parcelable serileştirme.
Açıklama:data class, primary constructor property'lerinden yapısal equals/hashCode/toString/copy (ve componentN fonksiyonları) üretir, tekrar eden kod yazımını azaltır.
Kt Kotlin Type System Null SafetyZorluk 1
data class Point(val x: Int, val y: Int)
val p1 = Point(1, 2)
val p2 = Point(1, 2)
println(p1 == p2)

Ne yazdırılır?
  • afalse, çünkü == class'larda referans kimliğini kontrol eder.
  • bPoint'in open olarak işaretlenip işaretlenmediğine bağlıdır.
  • cDerleme hatası, data class =='i override edemez.
  • dtrue
Açıklama:data class, yapısal bir equals() üretir, bu yüzden == referansı değil property değerlerini karşılaştırır; x/y eşit olan iki instance eşittir.
Kt Kotlin Type System Null SafetyZorluk 2
data class Account(val id: String, var balance: Double) bir HashSet'e ekleniyor. Ekleme sonrası, set içindeki nesne üzerinde balance değiştiriliyor. Bu ne riski yaratır?
  • aRisk yok, HashSet her mutasyonda hash kodlarını otomatik yeniden hesaplar.
  • bNesnenin hash kodu değişebilir, set içindeki lookup'ları bozar.
  • cbalance mutasyonu içeride copy()'i tetikler, yeni bir eleman oluşturur.
  • dHashSet elemanları immutable olduğundan mutasyon runtime'da reddedilir.
Açıklama:hashCode()'da kullanılan mutable property'ler hash-tabanlı koleksiyonlarda tehlikelidir: ekleme sonrası nesneyi değiştirmek doğru bucket'ının konumunu değiştirebilirken set onu hâlâ eski bucket'ta tutar, contains/lookup sessizce bozulur.
Kt Kotlin Type System Null SafetyZorluk 1
data class Account(val id: String, val balance: Double) instance'ında .copy(balance = 500.0) çağırmak ne yapar?
  • aOrijinal instance üzerinde balance'ı yerinde değiştirir.
  • bbalance val olarak tanımlandığı için runtime'da hata fırlatır.
  • cOrijinal instance'ı siler ve ona olan her referansı değiştirir.
  • dbalance'ı değiştirilmiş yeni bir instance döner.
Açıklama:copy() (data class için üretilir) seçili constructor property'lerini değiştirmenize izin verirken gerisini yeniden kullanan yeni bir instance döndürür — orijinal instance dokunulmadan kalır.
Kt Kotlin Type System Null SafetyZorluk 2
Derleyici, sealed class hiyerarşisi üzerinde else dalı olmadan tam-kapsayıcı bir when ifadesine neden izin verir?
  • aAlt sınıf kümesi kapalıdır, bu yüzden derleyici her durumu numaralandırabilir.
  • bÇünkü sealed class her alt sınıfı bir object olmaya zorlar, bu yüzden her zaman tam olarak iki durum vardır.
  • cÇünkü when tipten bağımsız olarak her zaman bir else dalı gerektirir.
  • dÇünkü sealed class'lar hiç alt sınıflandırılamaz, bu yüzden sadece bir durum vardır.
Açıklama:Bir sealed class'ın alt sınıfları, derleyicinin tamamen numaralandırabileceği bilinen, kapalı bir kümeyle sınırlıdır, bu yüzden her alt sınıfı kapsayan bir when kanıtlanabilir şekilde tam-kapsayıcıdır ve genel-geçer bir else'e ihtiyaç duymaz.
Kt Kotlin Type System Null SafetyZorluk 2
sealed class Result
data class Ok(val v: Int) : Result()
data class Err(val msg: String) : Result()

fun describe(r: Result): String = when (r) {
    is Ok -> "ok: ${r.v}"
    is Err -> "err: ${r.msg}"
}

Sonradan yeni bir alt sınıf object Pending : Result() ekleniyor. describe'a ne olur?
  • aHiçbir şey, describe derlenmeye devam eder ve Pending için sessizce null döner.
  • bYeni alt sınıf derleme zamanında reddedilir çünkü Result'ın zaten iki alt sınıfı var.
  • cDerleyici artık when'i tam-kapsayıcı olmadığı için raporlar.
  • ddescribe, herhangi bir argümanla ilk çağrıldığında runtime exception fırlatır.
Açıklama:Result sealed olduğundan derleyici her alt sınıfı takip eder; Pending eklemek, ifade olarak kullanılan (tam-kapsayıcılık gerektiren) mevcut when'i eksik bırakır, derleyici bu eksik dalı sessizce geçmek yerine raporlar.

2400 soruluk Mobil bankasında kendini sına.

Mülakata başla