Press "Enter" to skip to content

Category: Java

Effective Java Madde 6: Gereksiz Nesne Yaratmaktan Kaçının

Yazılım geliştirirken var olan bir nesneyi kullanmak, işlevsel olarak aynı işi yapan yeni bir nesne yaratmaktan genellikle daha faydalıdır. Nesnelerin yeniden kullanımı hem uygulamayı hızlandıracak hem de daha okunabilir bir kod yazmanızı sağlayacaktır. Eğer bir nesne değiştirilemez (immutable) ise, o nesne her zaman yeniden kullanılabilir. Aşağıdaki kod gereksiz nesne yaratılmasına…

Share
4 Comments

Effective Java Madde 2: Çok Sayıda Parametreyle Karşılaştığınızda Builder Kullanın

Daha önce birinci maddesini işlediğimiz Effective Java kitabının ikinci maddesiyle devam ediyoruz.

Sınıf yapıcılar (constructor) ve statik fabrika metotlarının (static factory methods) paylaştığı ortak bir kısıt vardır: çok sayıda parametre geçmeniz gerektiği zaman kullanışsız bir duruma gelirler. Örneğin, paket gıdaların üzerinde yer alan ve besin değerlerini gösteren bir etiketi Java’da bir sınıf kullanarak ifade etmeye çalıştığımızı düşünelim. Bu etiketin üzerinde kalori, kolesterol, protein, karbonhidrat, yağ, doğmamış yağ, kalsiyum, demir ve daha birçok besin türü görürüz. Ancak besinlerin bir çoğu için bu değerlerin büyük bir kısmı opsiyonel olacaktır, yani bu alanlara hiçbir atama yapmamıza gerek olmayacaktır.

Böyle bir sınıf yazmamız gerektiği zaman nasıl bir sınıf yapıcı veya statik fabrika metodu kullanırız? Genelde yazılımcıların aklına gelen ilk yöntem iç içe geçmiş yapıcı metotlar (telescobing constructors) kullanmak olur, yani sadece zorunlu parametreleri içeren bir yapıcı metot, ardından zorunlu parametreleri ve sadece bir opsiyonel parametre içeren başka bir yapıcı metot, ardından iki opsiyonel parametreli üçüncü bir yapıcı metot ve bu şekilde devam eder. Şimdi örnek kodu inceleyelim, kolaylık olması açısından sadece 2 tane zorunlu 4 tane de opsiyonel değişkenimiz olsun.

Share
2 Comments

Effective Java Madde 1: Yapıcı Metot (Constructor) Yerine Statik Fabrika Metotlarını Kullanın

Effective Java kitabını duymuşsunuzdur, Joshua Bloch efsane kitabında madde madde sizlere nasıl kaliteli Java kodu yazacağınızı anlatır. Bu kitapta anlatılanlarla ilgili yüzlerce İngilizce kaynak bulmak mümkün ama ben Türkçe bir kaynak bulamayınca sizlere bu kitabı özetlemeye karar verdim. Direk kitabın tam çevirisi olmasa da kendimce eklemeler çıkarmalar yaparak ve önemli gördüğüm yerleri vurgulayarak kitaptaki bölümlerden daha kısa ama aşağı yukarı aynı şeyi anlatan yazılar paylaşacağım. Başlangıç olarak kitaptaki ilk madde olan statik fabrika metotlarıyla başlıyoruz.

Normal şartlarda bir sınıf kendisinden nesne oluşturulmasını istiyorsa public bir sınıf yapıcı (constructor) tanımlar ve diğer sınıflar bunu kullanarak nesne oluşturabilir. Ancak her yazılımcının bilmesi gereken başka bir nesne yaratma yöntemi daha var. Bu yöntemde sınıf, dönüş değeri kendi nesnesi olan statik bir fabrika metodu (static factory method) tanımlar ve bu sınıftan nesne oluşturmak isteyenler bu metodu kullanırlar.

Share
6 Comments

Birim Test Nedir? Niçin Yapılır? Nasıl Yapılır?

Yıl olmuş 2014 hala birim test makalesi mi yazıyorsun diye düşünüyor olabilirsiniz. Ancak, birim testi uzun zamandır kullanılan bir yöntem olmasına rağmen tam olarak ne işe yaradığı, neden yapıldığı ve nasıl yapılması gerektiği konusunda açıklayıcı bir Türkçe yazı bulmak malesef zor. Bu yüzden, yazılım mühendisi adaylarına ve kariyerine yeni başlayan…

Share
Leave a Comment

Java Servisinin Kendi Kendine Durması Sorunsalı

Çalıştığım şirkette eski de olsa Glassfish 2.1.1 sunucusu üzerinde barındırdığımız bir uygulamamız var. Bütün sistemi daha yeni ve hızlı bir ortama taşımamız gerektiğinde Glassfish uygulama sunucusu yeni donanımlar üzerine yüklendi ve gerekli ayarlamaları yapıldı. Ancak test aşamasında farkettik ki Glassfish sunucusunun yüklü olduğu makinede kullanıcı oturumunu kapattığı anda uygulama yanıt…

Share
2 Comments

Java’da Gizli (Implicit) ve Açık (Explicit) Parametreler

Programlama dillerinde bir işlev, fonksiyon veya yöntem (metod) çağırırken veri geçişi için parametreler kullanılır. Java dilinde de aynı şey geçerlidir. Aşağıdaki gibi bir yöntemimiz olduğunu düşünürsek; public void maasArtir(double oran) { maas += maas * oran/100; } yukarıdaki yöntem parametre olarak double türünde bir değer almakta ve nesne değişkeni olan…

Share
Leave a Comment

Java’da this Anahtar Kelimesi ve Kullanımı

Java dilinde kullanılan anahtar kelimelerden birisi de “this” kelimesidir. Kullanım alanı çok fazla olmasa da this anahtar kelimesinin ne işe yaradığını ve ne amaçlarla kullanıldığını öğrenmekte fayda var.  Basit olarak söylemek gerekirse this anahtar kelimesi o anda hangi nesne üzerinde işlem yapılıyorsa o nesnenin referansını döndürür. Şimdi bu anahtar kelime ile neler yapılabileceğine bakalım.

Share
17 Comments

Java’da Serileştirme İşlemleri – 1

Java gibi nesneye yönelik programlama dillerinde, nesneye ait alanların değerleri o nesnenin durumunu oluştururken, yazdığımız metotlar ise o nesnenin davranışını belirleyen ve nesnenin durumu üzerinde değişiklikler yapan kodlardır. Java dili bizlere bir nesnenin herhangi bir andaki durumunu bir dosyaya kaydetmemizi ve daha sonra bu dosya üzerinden nesneyi tekrar oluşturmamızı sağlayan bir mekanizma sunmaktadır. Bu mekanizmaya Serileştirme denir. Serileştirmeyi kullanarak JVM içerisindeki nesneleri sabit diske kaydedip kalıcı olmalarını sağlayabiliriz veya bir yerden başka bir yere aktarabiliriz .

Serileştirme yapılırken sınıf adı, tanımlı alanların türleri, adları ve değerleri gibi bilgiler tek tek bytelara çevrilir ve bir dosyaya kaydedilir. Daha sonra bu dosya kullanılarak aynı nesne yeniden oluşturulabilir. Serileştirme genellikle nesnelerin bir ağ üzerinden gönderilmesi amacıyla kullanılır. Serileştirme işlemi uygulanarak byte dizisi haline getirilen nesne ağ üzerinden başka bir bilgisayara gönderilir ve alıcı bilgisayar üzerinde yeniden oluşturulur. Nesnenin byte dizisine çevrilmesi işlemine “Serialization”, byte dizisi kullanılarak nesnenin yeniden oluşturulmasına ise “De-Serialization” denir. Şimdi Java dilinde serileştirmenin nasıl yapıldığına bakalım.

Share
3 Comments

Java’da Final Anahtar Kelimesi ve Kullanımı

Java dilinde detayları çok iyi bilinmeyen ve belki de pek önemsenmeyen, kıyıda köşede kalmış konulardan birisi de “final” anahtar kelimesidir. Değişkenlere, metodlara ve hatta sınıflara uygulanabilen, kullanıldığı zaman çok faydalı olabilecek bu anahtar kelimenin bütün kullanım detaylarını bu yazıda açıklamaya çalışacağım.

Share
13 Comments

JVM – İçeride Neler Oluyor?

Java ile uğraşan hemen herkes JVM (Java Virtual Machine) hakkında az çok bilgiye sahiptir. Basit olarak söylemek gerekirse JVM, yazdığımız java uygulamalarını çalıştıran sanal bir makinedir. Peki bu sanal makinenin içerisinde arka planda neler döndüğünü hiç merak ettiniz mi? Bu yazıda programcıların yazdığı .java uzantılı bir kod dosyasının derlendikten sonra hangi aşamalardan geçerek çalıştırıldığını anlatmaya çalışacağım. JVM ile ilgili daha basit düzeyde detaylı bilgi almak istiyorsanız bu adresteki yazımı okuyabilirsiniz.

Bir java programcısının yazdığı .java uzantılı dosya, Java derleyicisi tarafından derlenerek çalıştırılmaya hazır .class uzantılı bir “bytecode” dosyasına dönüştürülür. Bu aşamadan sonra programın çalıştırılması işini JVM yapar. JVM bir Java programını çalıştırmadan önce “yükleme”, “bağlama” ve “ilklendirme” olmak üzere 3 aşamadan geçirir. Şimdi sırasıyla bunları inceleyelim.

Share
2 Comments
%d bloggers like this: