Press "Enter" to skip to content

Tag: effective java

Effective Java Madde 62: Diğer Türlerin Daha Elverişli Olduğu Durumlarda String Kullanmaktan Kaçının

String türü, metinleri temsil etmek için tasarlanmıştır ve bu işi gayet iyi yapmaktadır. Ancak stringler çok yaygın ve kullanımı kolay olduğundan, uygun olmadıkları durumlar için de kullanıldığını görmekteyiz. Bu maddede, stringleri kullanmamanız gereken durumlardan bahsedeceğiz. Stringler diğer değer türlerinin (value types) yerine kullanılmamalıdır. Bir programa veri akışı olduğunda (örneğin bir…

Share
Leave a Comment

Effective Java Madde 61: Kutulanmış (boxed) Yerine Temel Türleri Tercih Edin

Java’da tür sistemi iki parçadan oluşur: int, double, boolean gibi temel türler ve String, List gibi referans türleri. Her temel türe karşılık gelen birer tane de kutulanmış temel tür (boxed primitive type) bulunmaktadır. Örneğin, int, double ve boolean temel türlerine karşılık gelen kutulanmış türler Integer, Double ve Boolean olmaktadır. Madde…

Share
Leave a Comment

Effective Java Madde 60: Net Sonuçlar Almak İstiyorsanız double ve float Kullanmaktan Kaçının

Java’da double ve float bilimsel ve mühendislik hesaplamaları için tasarlanmış türlerdir. Bu türler, ikili kayan noktalı işlemler (binary floating-point arithmetic) yapmak için tasarlarlanmıştır ancak net sonuçlar almak istediğinizde doğru çalışmazlar. Özellikle de parasal hesaplamalar yapmak için hiç uygun değildirler çünkü 0.1 değerini (ya da 10’un diğer negatif kuvvetlerini) double veya…

Share
Leave a Comment

Effective Java Madde 59: Kütüphaneleri Öğrenin ve Kullanın

Diyelim ki 0 ile belli bir üst sınır değeri arasında rastgele sayılar üretmek istiyorsunuz. Birçok programcı bu işi yapmak için aşağıdaki gibi bir kod yazabilir: Bu metot doğru gibi görünse de oldukça hatalıdır. Seçtiğiniz n değerine bağlı olarak bazı sayıların diğerlerine kıyasla daha sık üretilmesi söz konusudur. Aşağıdaki kod önce…

Share
2 Comments

Effective Java Madde 58: Klasik for Döngüleri Yerine for-each Tercih Edin

Madde 45’de anlatıldığı üzere, bazı durumlarda stream kullanmak avantajlı olurken, bazen de yinelemeye (iteration) başvurmak daha mantıklı olmaktadır. Aşağıda, bir koleksiyonun elemanlarını tarayan bir döngü görmekteyiz: Bu da dizi elemanlarını tarayan klasik döngü kodu: Yukarıdaki kullanımlar Madde 57’deki while döngülerinden daha iyi olsa da mükemmel değiller. Iterator ve döngü değişkenleri…

Share
Leave a Comment

Effective Java Madde 57: Yerel Değişkenlerin Etki Alanını Kısıtlayın

Bu madde ile Madde 15: Sınıfların ve Üyelerinin Erişilebilirliğini Kısıtlayın benzer tavsiyelerde bulunmaktadır. Yerel değişkenlerin etki alanını (scope) kısıtlayarak hem kodunuzun okunabilirliğini ve bakım yapılmasını kolaylaştırırsınız, hem de hata yapılmasının önüne geçmiş olursunuz. C gibi eski programlama dillerinde, yerel değişkenlerin blokların başında tanımlanması zorunluydu ve bazı programcılar da bunu alışkanlık…

Share
Leave a Comment

Effective Java Madde 55: Optional Döndürürken Dikkatli Olun

Java 8’den önce, belli durumlarda değer döndüremeyen bir metot yazabilmek için iki farklı yöntem mevcuttu. Bunlardan birincisi aykırı durum (exception) fırlatmak, ikincisi ise metodun dönüş türü nesne referansı ise null döndürmektir. Bu yaklaşımların ikisi de mükemmel değildir. Aykırı durumlar istisnai durumlar için kullanılmalıdır (Madde 69) ve aynı zamanda yaratılması masraflıdır.…

Share
Leave a Comment

Effective Java Madde 54: Null Yerine Boş Koleksiyon veya Dizi Döndürün

Aşağıdakine benzer metotlar sıklıkla karşımıza çıkmaktadır: Yukarıdaki kodda peynir listesinin boş olduğu durumu özel bir durum gibi ele alıyoruz. Bu son derece gereksizdir. Bu, istemciyi de null denetimi yapmaya mecbur bırakacaktır: Boş bir koleksiyon veya dizi yerine null döndüren bütün metotlar bu soruna yol açar. Hata yapmaya çok elverişlidir çünkü…

Share
Leave a Comment

Effective Java Madde 53: Değişken Sayılı Argümanları (varargs) Dikkatli Kullanın

Varargs Java dilinde belirli bir türden sıfır veya daha fazla sayıda argümanı bir metoda tek seferde geçmemizi sağlayan bir mekanizmadır. Variable arity yani değişken sayılı argümanlar ifadesinin kısaltılmasıdır. Arka planda bu mekanizma değişken sayıdaki argümanların toplanıp tek bir dizi içerisinde saklanması ve bu dizinin metoda geçilmesi mantığıyla çalışır. Örneğin, aşağıda…

Share
Leave a Comment

Effective Java Madde 52: Aşırı Yüklemeyi (Overloading) Dikkatli Kullanın

Aşağıdaki program koleksiyonlar (collection) üzerinde gruplama yapmaya çalışmaktadır: Bu programın önce Set sonra da List ve Unknown Collection değerlerini üreteceğini düşünebilirsiniz ancak böyle olmaz. Üç kere Unknown Collection çıktısı üretir. Peki bu neden olmaktadır? Çünkü classify metodu aşırı yüklenmiştir ve bu durumda hangi metodun çalıştırılacağına derleme anında karar verilir. Döngüye…

Share
Leave a Comment
%d bloggers like this: