Java ve JVM
Java dili, JVM davranışı, bağımlılıklar ve uygulama hata ayıklama.
50 çözüm rehberi · Sayfa 1 / 3
Nullable Integer değerini int değişkenine atarken hata neden sonraki satırdan önce oluşur?
Kaynak satırında nokta operatörü görünmese bile atama örtük bir metot çağrısı içerebilir. İlkel sayı türü eksik miktarı temsil edemez.
Integer kimlik karşılaştırması küçük testlerde çalışıp büyük sayılarda neden bozulur?
İki wrapper değişkeni nesne referansıdır. Çalışma zamanının tesadüfen aynı wrapper nesnesini yeniden kullanması, hatalı kimlik karşılaştırmasını gizleyebilir.
Dosyadan okunan komut Java metin karşılaştırmasında neden eşleşmez?
Sabit metin ile dosyadan çözülen giriş aynı karakterleri içerirken farklı nesneler olabilir. Önce referans kimliği ile içeriği ayır, ardından giriş baytlarını incele.
0.1 üzerinden oluşturulan BigDecimal neden beklenmedik basamaklar içerir?
Ondalık kurucu, binary kayan noktalı değişkende önceden yaklaşılmış sayının niyetini geri getiremez. Temsili veri girişinde seçmek gerekir.
Kesin BigDecimal bölmesi devirli ondalık sonucu nasıl ele almalı?
Kesin bölüm sonucu sonsuz ondalık basamak gerektirebilir. Bu durum sıfıra bölme veya bozuk girişten farklıdır.
2.0 ve 2.00 BigDecimal değerleri HashSet içinde neden farklı davranır?
İş alanı sayısal eşitliği isterken nesne gösterim ölçeğini de saklıyor olabilir. Koleksiyonun hangi farkı koruması gerektiğine karar ver.
int çarpımını long değişkenine atamak taşmayı neden önlemez?
Sonucun atanacağı tür, ifadenin nasıl hesaplandığını her zaman değiştirmez. İki int önce çarpılıp taşabilir, bozuk sonuç sonra long olur.
Java negatif kalan sonucu dönen kova indeksi için neden uygun değildir?
Giriş negatif olabiliyorsa kalan işlemi ile negatif olmayan döngüsel indeks aynı şey değildir.
Başarısız downcast yerine beklenmedik veri türünü gizlemeden ne kullanabilirim?
Cast mevcut nesnenin türünü kontrol eder; onu başka sınıfa dönüştürmez. Hatanın olduğu tüketiciyle birlikte üreticiyi de izle.
List<Integer>, List<Number> alan metoda neden doğrudan verilemez?
Bu dönüşüme izin verilse metot, yalnız Integer içerdiği söylenen listeye Double ekleyebilirdi. Derleyici reddi çağıranın koleksiyonunu korur.
List<? extends Number> okunurken neden içine Integer eklenemez?
Bilinmeyen öğe türü Integer’dan farklı ve daha dar bir alt tür olabilir. Üst sınırı bilmek okumaya yeter, uygun öğe üretmeye yetmez.
Object[] değişkenine sayı eklerken neden ArrayStoreException oluşur?
Daha geniş bir referans gösterse de dizi çalışma zamanındaki öğe türünü korur. Referans bildirimi diziyi yeniden oluşturmaz.
List<Integer> içinden 1 değerini silmek neden ikinci satırı kaldırır?
Aşırı yüklenmiş metotlar benzer görünen sayıyı indeks veya nesne olarak yorumlayabilir. Liste sırasını araştırmadan önce seçilen imzayı kontrol et.
Arrays.asList öğeyi değiştirebilirken neden yeni öğe ekleyemez?
Dönen liste sabit boyutlu bir görünümüdür. Öğeyi değiştirmek ile yapıyı büyütmek farklı yetkilerdir.
List.of, döngüm null öğeleri silemeden neden hata verir?
Koleksiyon fabrikası giriş sözleşmesini oluşturma sırasında uygular. Hiç oluşmayan nesne üzerinde temizleme döngüsü çalışamaz.
Geçiş sonrası Stream.toList listesinin add işlemini reddetmesinin nedeni nedir?
Akışın sonuç toplama işlemi, değiştirilebilir liste sözü vermez. Bir terminal işlemi diğeriyle değiştirirken sözleşmeyi kontrol et.
Bir alan değişince HashMap anahtarı neden bulunamaz olur?
Anahtarın arama kimliği, map içinde durduğu sürece kararlı olmalıdır. Eşitlik veya hash hesabına katılan alan değişince öğe eski durumun seçtiği konumda kalabilir.
Eşit özel Java anahtarları HashSet içinde neden yinelenen kayıt oluşturur?
Hash tabanlı koleksiyon için eşitlik ile hash aynı kimliği tanımlamalıdır. Yalnız özel equals yazmak yetmez.
Enhanced for döngüsünde satır silmek neden ConcurrentModificationException oluşturur?
Tek thread olsa bile iterator ile koleksiyon yapısal değişiklikte uyuşmayabilir. Hatanın adı mutlaka thread yarışı olduğu anlamına gelmez.
Ana liste düzenlenince saklanan subList neden beklenmedik davranır?
Bir dilim bağımsız anlık kopya yerine başka kabın görünümü olabilir. Tüketicinin sonraki ana liste değişikliklerini görüp görmemesine karar ver.
İki kayıt aynı anahtarı taşıyorsa Java toMap collector nasıl davranmalı?
Yinelenen anahtar, yalnız susturulacak collector hatası değil veri modeli kararıdır. Bunun hata mı, çoklu değer mi, birleştirilecek miktar mı olduğunu belirle.
Tüketilmiş Java stream’i yeniden kullanmadan aynı veriyi nasıl sayıp aktarırım?
Stream tek geçişi tarif eder. Referansını saklamak öğelerin yeniden kullanılabilir kopyasını saklamak değildir.
Java stream count, peek içine konan işi neden atlayabilir?
Gözlem kancası zorunlu işlemin güvenilir yeri değildir. Terminal işlem bütün ara eylemleri çalıştırmadan cevabı belirleyebilir.
parallelStream işçileri aynı ArrayList’e ekleyince sonuçlar neden eksilebilir?
Paylaşılan sonuç listesi eşzamanlı değişebilir kaynağa dönüşmüştür. Sıralı test sahiplik hatasını gizleyebilir.
Kendi sorunu sor · Soru ve cevap yazmak için giriş yap.