Archive of posts with category 'java'

Java 17 ve Öncesi Garbage Collector (Çöp Toplayıcı)

Çöp Toplama (Garbage Collection), program çalışırken kullanılmayan bloklarını tespit edip serbest bırakarak heap (dinamik bellek) yönetimini kolaylaştıran bir mekanizmadır. Çöp toplama bazı dillerde manuel olarak yönetilirken bazılarında otomatiktir. Örneğin C++' da manuel olarak yönetilirken, Java'da böyle bir maliyet söz konusu değildir. Bu çalışmada çöp toplama...

Java 21'de Gelen Yenilikler - Virtual Threads - Spring Framework'te Kullanımı

Bu yazıda Java 21 ile gelen yenilikleri inceleyeceğiz. Virtual threadlerin artılarından, eksilerinden bahsedip Spring Boot tabanlı uygulamalarda kullanımına değineceğiz.

Stream API

Stream API, Java 8 ile eklenmiş bir yeniliktir. Stream akıntı anlamına gelir ve çalışma mantığı olarak da bir akıntı üzerine gelen verileri sırayla ya da paralel işleyen metotlar olarak düşünülebilir. Stream sayesinde loop kullanan imperative metotlar, fonksiyonel programlamaya uygun şekilde değiştirilebilmektedir.

Java'da Fonksiyonel Programlama

Fonksiyonel programlama, fonksiyonlar kullanarak program tasarlama modelidir. Obje Tabanlı Programlama modeline göre güçlü ve zayıf olduğu yönler bulunur. Sektörde oldukça popüler ve aslında obje tabanlı olan Java programlama diline; Java 8 sürümüyle birlikte, fonksiyonel programlama konseptlerini uygulamamıza imkân tanıyan yenilikler eklenmiştir. Bu sayede hem obje...

Java 17: Text-Blocks & String Methods

Text-Blocks Javada çok satırlı Stringleri kullanmamıza yarar. Çoğu programlama dilinde olan bu özellik, java 13 sürümü ile javaya da eklenmiştir. Bir diğer yeni özellik ise satır içi çok satırlı stringleri daha okunabilir hale getirme özelliğidir.

Java 17: Switch Expression

Switch-case tanımı, if-else ile benzer bir şekilde bir variable’ın değerine göre farklı kod bloklarının çalışmasını sağlar. Java 7’ye kadar switch-case tanımlamalarında sadece integer değerde bir variable’ın koşulları kullanılabiliyorken, Java 8’de String ve Enum type’lar için de kullanılabilir hale geldi.

Java 17: Local-Variable Type Inference

Local-Variable Type Inference özelliği Java 10 ile birlikte gelmiştir. JavaScript dilindeki gibi variable tanımlaması yaparken local type inference için kullanılan ve variable’ı istediğiniz tipte tanımlamanızı sağlayan bir Java anahtar kelimesidir.

Java 17: Lambda Expression

Lambda Expressionları, fonksiyonel programlamayı kullanmamızı sağlar. Okunabilir ve kısa kodlar yazmamızı sağlar. Daha kolay ve kullanışlı APIlar ve kütüphaneler yazmamıza yardımcı olur. Pararel işleme için destek sunar.

Java 17: Collections

Java Collections, nesneleri tutmak ve manipüle etmek için tasarlanan bir frameworktür. Veri üzerinde arama, sıralama, ekleme, değiştirme, silme gibi işlemleri gerçekleştirir. Collections, birçok interface (Set, List, Queue, Deque), sınıflar (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet) ve algoritmalar içerir.

Java 17: Interfaces

Java 8 ile birlikte interfacelerde default ve statik metotlar tanımlanabilir. Daha önce interfaceleri implemente eden sınıfları değiştirmeden interface’e yeni bir metot eklemek mümkün değildi, artık interfacelerde metotlar implemente edilebilir hale...

Java 17: Güncel Java Kod Gözden Geçirme Kontrol Listesi

Java 8 sonrası eklenen özellikleri kapsayan, kodun daha okunabilir olmasını sağlayan maddeler listelenmiştir.

Java 17: Date and Time API

Java 8 öncesinde kadar zaman bilgisi için Date ve Time API kullanılıyordu fakat bu API içerik olarak çok fazla detaya sahipti. Java 8 ile birlikte Date ve Time API’larında radikal değişiklikler yapıldı. Bu değişikler ile geliştiricilerin sadece 6 farklı sınıfın detaylarını bilerek tarih bilgisini geliştirdikleri...