Java ve JVM
Java dili, JVM davranışı, bağımlılıklar ve uygulama hata ayıklama.
50 çözüm rehberi · Sayfa 2 / 3
Optional.orElse değer varken pahalı yedek işlemi neden çalıştırır?
Metot argümanı, metot onu kullanıp kullanmayacağına karar vermeden hesaplanır. Bu yüzden sonucu gerekmeyen yedek ifade yine çalışabilir.
Optional.get hatası genel istisna yerine anlamlı iş alanı hatasına nasıl çevrilir?
Boş sonuç arama sözleşmesinin parçasıdır. Eksikliği ele almadan get çağırmak kararı genel çalışma zamanı hatasına taşır.
Java regex replacement içindeki düz dolar işareti neden grup hatası verir?
Replacement metninin kendi sözdizimi vardır; arama desenini kaçışlamak replacement’ı kaçışlamaz. İki girdiyi ayrı değerlendir.
Java split kaydın sonundaki boş alanları neden kaldırır?
Varsayılan split sondaki boş token’ları atabilir. Ayırıcılar girişte dursa bile sabit sütunlu kaydın yapısı değişir.
Java Türkçe locale ile çalışınca teknik kimliği küçük harfe çevirmek neden değişir?
İnsan dilinin harf dönüşümü ile protokol normalizasyonu farklı işlerdir. Sürecin varsayılan locale değeri basit dönüşümü ortama bağımlı yapabilir.
Java metin dosyasının belirli encoding ile gidiş dönüşünü nasıl sağlarım?
Baytlar yalnız encoding anlaşmasıyla karaktere dönüşür. Bozulmuş metni içeride onarmak yerine sınırı açık kur.
Uzunluk kontrolü geçmesine rağmen Java substring emojiyi neden bölebilir?
UTF-16 kod birimi her zaman tam Unicode karakteri değildir. Kullanıcının gördüğü simge tek code point’ten de karmaşık olabilir.
Files.lines ile tekrarlanan okuma neden açık dosya tanıtıcılarını tüketebilir?
Tembel okunan stream açık dosyanın sahibi olabilir. Terminal işlemin bitmesi, kaynağı kapatma yükümlülüğünün yerine geçmez.
Scanner.nextInt sonrasında nextLine neden hemen boş döner?
Token tabanlı okuma ile satır tabanlı okuma imleci farklı sınırda bırakır. Mevcut satırın kalan kısmı boş olabilir.
Java try-with-resources gövdesi de hata verince close hatası nereye gider?
Tek işlemde ana iş ve temizleme olmak üzere iki hata çıkabilir. Birincil hatanın korunması, kapatmanın başarılı olduğu anlamına gelmez.
Path.normalize kullanıcıdan gelen göreli yolu klasör içinde güvenli hale getirir mi?
Sözcüksel temizleme tam dosya sistemi yetkilendirmesi değildir. Yol izinli ağaç dışında kalabilir veya symbolic link üzerinden çıkabilir.
Eksik Java sınıfını daha önce başlatılması başarısız sınıftan nasıl ayırırım?
Sonraki class-loading hatası daha önceki başlatma hatasını gizleyebilir. Yeni bağımlılık eklemeden süreçteki ilk hatayı bul.
Java derlendiği halde çalışma zamanında neden NoSuchMethodError verir?
Çağıran kod, üretimde yüklenenden farklı binary API’ye karşı derlenmiş olabilir. Bu kaynakta metot adını yanlış yazmakla aynı değildir.
UnsupportedClassVersionError yalnız sunucuda çıkıyorsa hangi Java kurulumu önemlidir?
Sınıf dosyası çalıştıran JVM’in kabul etmediği düzeyde üretilmiştir. Editörde seçilen JDK, sunucudaki runtime’ın kanıtı değildir.
Classpath kaynak URL’sini File yapmak IDE’de çalışıp JAR içinde neden bozulur?
Paketlenmiş kaynak bağımsız dosya sistemi dosyası olmak zorunda değildir. Arşiv içindeki URL farklı erişim sözleşmesine sahiptir.
Java tarih biçimleyici aralık sonundaki gün için neden gelecek yılı yazabilir?
Takvim yılı ve hafta temelli yıl bazı yıl sınırlarında ayrılır. Başka kütüphaneden kopyalanan desen yanlış kavramı seçebilir.
Java’nın geçersiz tarihi düzeltmesi yerine 30 Şubat’ı nasıl reddederim?
Parser’ın çözümleme politikası tarih alanlarını kabul edebilir, düzeltebilir veya reddedebilir. Başarılı ayrıştırma ancak bu politikayla birlikte anlamlıdır.
Yerel randevu saatine zaman dilimi ekleyince saat neden değişebilir?
Duvar saati, her zaman dilimi geçişinde tek bir anı göstermez. Bazı yerel saatler atlanır, bazıları iki kez yaşanır.
Java işçisi InterruptedException hatasını neden yok sayıp normal devam etmemeli?
Interrupt çoğu zaman beklemeyi veya işi bırakmak için işbirlikçi istektir. Yutmak executor kapanmasını ya da istek iptalini boşa çıkarabilir.
Java condition beklemesi uyandıktan sonra koşulu neden yeniden kontrol etmeli?
Uyanmak, istenen koşulun kesinleştiği değil ortak durumu yeniden kontrol edebileceğin anlamına gelir. Başka işçi hazır işi tüketmiş olabilir.
volatile int, eşzamanlı Java işçilerinde artışları neden kaybedebilir?
Tek değerin görünürlüğü, oku-değiştir-yaz dizisinin atomikliği değildir. Güncellemeler çakışınca artış işlemi ikisine de ihtiyaç duyar.
ConcurrentHashMap üzerinde containsKey ardından put neden yarışabilir?
Tek tek thread güvenli metotlar, metot dizisini atomik karar yapmaz. Kontrol ile ekleme arasına başka çağıran girebilir.
Havuzdaki Java thread’i önceki isteğin ThreadLocal bağlamını nasıl yeniden kullanabilir?
Havuz istek bittikten sonra thread’i yeniden kullanır. ThreadLocal durum mantıksal isteği değil onu taşıyan thread’i izler.
thenApply neden son asenkron sonuç yerine iç içe CompletableFuture döndürür?
Callback başka asenkron aşama döndürüyorsa normal mapping o aşamayı değer olarak korur. Çağıran iki tamamlanma seviyesi görür.
Kendi sorunu sor · Soru ve cevap yazmak için giriş yap.