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…
Leave a CommentSeçkin Tozlu Posts
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…
Leave a CommentBu madde çeşitli API tasarım önerilerinin toplandığı bir yazı. Bu öneriler uygulandığı taktirde API’ınızın anlaşılmasını kolaylaştıracak ve hata ihtimalini minimuma indirecektir. Metot isimlerini dikkatli seçin. İsimler her zaman için standart isimlendirme modellerini takip etmelidir. (Madde 68) Ana hedefiniz anlaşılabilir ve aynı pakette kullanılan diğer isimlerle tutarlı olan isimler seçmek olmalıdır.…
Leave a CommentJava kullanmayı keyifli kılan şeylerden bir tanesi güvenli bir dil olmasıdır. C ve C++ dillerinde karşılaşabileceğiniz gösterge problemleri, bellek taşmaları ve yine bellekte yaşanabilecek bozulmalara karşı dirençlidir. Güvenli bir dil kullanırken, programın başka yerlerinde ne olursa olsun yazdığınız bir sınıftan yaratılan nesnelerin durumlarının sizin koyduğunuz kurallar çerçevesinde şekillenmesini sağlayabilirsiniz. Bunu…
Leave a CommentBu yazıda Java dilinde dizi kavramını ele alacağız ve temel kavramları öğreneceğiz. Diziler (array), aynı türdeki değerlerin bir arada tutulmasını sağlayan ve sabit büyüklüğe sahip nesnelerdir. Bunu açacak olursak: Bir dizi aynı türden nesneleri tutmak zorundadır. Burada tür, int, boolean gibi temel (primitive) türler olabileceği gibi nesne referansları da olabilir.…
Leave a CommentMerhaba arkadaşlar. Bu yazıda Amerika’da çalışma izni sağlayan vize türlerinin en yaygın olanlarından bahsedeceğim. Bu yazı dizisi bilgisayar/yazılım mühendislerine yönelik olsa da vize türleri konusu çoğu meslek için aynı. Ancak şunu da söylemem lazım, burada anlatılanlar kısa bilgilendirmelerden ibaret olacak. Her bir seçenek için detaylı kurallar ve geçmeniz gereken süreçler…
Leave a CommentÇoğu metot ve yapıcı metot parametre geçilen değerler için kısıtlamalar koyar. Örneğin dizin (index) değerlerinin pozitif tamsayı olması ve nesne referanslarının null olmaması gibi kısıtlamalarla sıklıkla karşılaşırız. Bu kısıtlamaları metot gövdesinin başında uygulamalı ve açıkça belgelemelisiniz. Bunu yaptığımız taktirde hataların olabildiğince erken saptanması mümkün olabilir, aksi taktirde bunu geciktirmiş oluruz…
1 CommentYaygın olarak kullanılan programlama dilleri arasında Java, paralel programlamayı kolaylaştıran araçlar sunma konusunda her zaman en önde olmuştur. 1996’da Java ilk ortaya çıktığında wait/notify mekanizması ile threadleri destekliyordu. Java 5 java.util.concurrent paketiyle beraber paralel koleksiyonlar ve executor yapısını dile eklerken, Java 7 ile fork-join mekanizmasına kavuştuk. Java 8 ise tek…
Leave a CommentStream kullanmaya yeni başladıysanız alışmak zaman alabilir. Yapmak istediğiniz hesaplamayı stream hatları (stream pipeline) kullanarak ifade etmek zor gelebilir. Bunu başardığınız zaman da size pek bir faydası olmadığını düşünebilirsiniz. Streamler sadece yeni bir API değil, aynı zamanda bir fonksiyonel programlamaya yaklaşımıdır. Streamlerden en üst düzeyde faydalanabilmek için sadece API’ı değil…
1 Comment