ADVANCED FEATURES IN JAVA: USING GENERIC TYPE PARAMETERS EĞİTİMİ

Java generics ile tip güvenli kod yaz

Jenerik sınıf ve metotlar, bounded type, type erasure ve jenerik tasarım kalıplarını uygulamalı öğrenin.

Java Generics ve Tip Parametreleri eğitimi 2 günlük uygulamalı programda generics motivasyonu, jenerik sınıflar, jenerik metotlar, jenerik tasarım kalıpları gibi konuları kapsar. Tip parametreli sınıf ve arayüzleri doğru isimlendirme ile yazabilirsiniz.

2 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Jenerik sınıf, jenerik metot, bounded type ve type erasure

Bu eğitim, Java generics mekanizmasını tip parametresi tasarımı üzerinden öğretir. Jenerik sınıf ve arayüz tanımı (class Box<T>), çoklu tip parametreleri, jenerik metotlar, diamond operatörü ve tip çıkarımı (type inference) işlenir. Sınırlı tip parametreleri (<T extends Comparable<T>>), çoklu sınırlar, jenerik kalıtım kuralları ve tür silinmesi (type erasure) sonucu ortaya çıkan kısıtlar — jenerik dizi oluşturamama, instanceof ve static alan sınırları, bridge metotlar — örneklerle ele alınır; Pair, Result ve Repository<T, ID> gibi gerçek tasarımlar yazılır.

Süre ve Format

2 Gün. Her gün dört modül; katılımcılar jenerik sınıf ve arayüzler konusundan başlayıp sınırlar ve tür silinmesi konusuyla tamamlar.

Seviye

Orta Seviye — Jenerik sınıf, arayüz ve metot yazımı, sınırlı tip parametreleri ve tür silinmesi (type erasure).

Öğrenme Metodu

Jenerik olmayan kod adım adım jenerik hale getirilir; derleyici hataları yorumlanır ve javap ile tür silinmesi bayt kodunda gözlemlenir.

Neden Bu Eğitim?

🛡️Tip Güvenliği

ClassCastException hatalarını çalışma zamanından derleme zamanına taşırsınız.

🧬Yeniden Kullanım

Tek bir jenerik sınıfla farklı tipler için çalışan tekrar kullanılabilir kod yazarsınız.

🔍Silinme Bilgisi

Type erasure nedeniyle oluşan kısıtları anlar ve çözüm kalıplarını bilirsiniz.

Anahtar Konular

java genericsjava jenerik sınıftype erasurebounded type javajava generic methoddiamond operatörüjava tip parametresigenerics eğitimiraw typejava jenerik metot
“Generics, hataları üretimde değil derleyicide yakalamanın yoludur.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Java Sözdizimi

Değişken, döngü, metot ve sınıf tanımlayabilecek düzeyde temel Java bilgisi beklenir.

2
Nesne Yönelimli Bilgi

Sınıf, kalıtım, arayüz ve polimorfizm kavramlarına aşinalık faydalıdır.

3
Geliştirme Ortamı

JDK 17 veya üzeri ile IntelliJ IDEA ya da Eclipse kurulu bir bilgisayar gerekir.

4
Komut Satırı

javac, java ve Maven/Gradle ile derleme-çalıştırma adımlarını izleyebilmek yararlıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı, jenerik sınıf ve arayüz yazar, tip çıkarımını ve diamond operatörünü doğru kullanır.
Modül 1
Generics Motivasyonu
  • Object tabanlı koleksiyonun cast riskleri
  • Derleme zamanı tip denetimi avantajı
  • Ham tip (raw type) uyarıları ve neden kaçınılmalı
  • T, E, K, V isimlendirme gelenekleri
  • Java 5'ten bu yana generics evrimi
  • Primitive tiplerin jeneriklerde kullanılamaması ve boxing
Modül 2
Jenerik Sınıflar
  • class Box<T> tanımı ve örnekleme
  • Çoklu tip parametresi: Pair<K, V>
  • Diamond operatörü <> ve tip çıkarımı
  • Jenerik arayüz uygulama: Comparable<T>, Supplier<T>
  • Jenerik iç içe sınıflar ve static bağlam kısıtı
  • Jenerik Stack<T> ve Queue<T> yazımı
Modül 3
Jenerik Metotlar
  • public static <T> void method imzası
  • Metot çağrısında tip çıkarımı ve açık tip belirtimi
  • Jenerik kurucular
  • Hedef tiplemeyle (target typing) çıkarım
  • Jenerik metot ile jenerik sınıf arasındaki seçim
  • Util.swap, Util.max, Util.firstOrDefault örnekleri
Modül 4
Jenerik Tasarım Kalıpları
  • Result<T, E> ile hata ve başarı modelleme
  • Jenerik Repository<T, ID> arayüzü
  • Jenerik Builder ve fluent API
  • Self-bounded tip: Builder<T extends Builder<T>>
  • Jenerik Event ve Listener tasarımı
  • Immutable Pair ve Tuple uygulamaları
Günün hedefiKatılımcı, sınırlı tip parametreleri tanımlar ve type erasure kaynaklı kısıtları çözüm kalıplarıyla aşar.
Modül 1
Sınırlı Tip Parametreleri
  • <T extends Number> üst sınır kullanımı
  • <T extends Comparable<T>> ile sıralanabilir tipler
  • Çoklu sınır: <T extends A & B>
  • Sınırın sağladığı metot erişimi
  • Rekürsif sınır: <T extends Comparable<? super T>>
  • Sınır ihlalinde derleyici hataları
Modül 2
Jenerik Kalıtım
  • List<Object> ve List<String> arasında alt tip ilişkisi olmaması
  • Jenerik sınıfın jenerik sınıfı genişletmesi
  • Jenerik arayüzün somut tiple uygulanması
  • Kalıtım ve override'da tip parametresi
  • Covariant dönüş tipleri
  • Jenerik dizi (T[]) neden güvenli değildir
Modül 3
Type Erasure
  • Derleme sonrası tip bilgisinin silinmesi
  • javap ile silinmiş imzaları görme
  • Bridge metotlar ve sentetik metotlar
  • instanceof List<String> kullanılamaması
  • new T() ve T.class yapılamaması
  • Class<T> token ile çözüm yaklaşımı
Modül 4
Kısıtlar ve Çözümler
  • Statik alanda tip parametresi yasağı
  • Jenerik exception sınıfı yasağı
  • Heap pollution ve @SafeVarargs
  • Reflection ile jenerik tip bilgisi (TypeToken, ParameterizedType)
  • Jenerik dizi oluşturmak için Array.newInstance
  • Mülakat soruları: erasure, overload çakışması

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Jenerik Sınıf

Tip parametreli sınıf ve arayüzleri doğru isimlendirme ile yazabilirsiniz.

🧠
Jenerik Metot

Tip çıkarımına dayanan jenerik metotlar tanımlayabilirsiniz.

⚙️
Bounded Type

extends ile sınırlı ve çoklu sınırlı tip parametreleri kullanabilirsiniz.

🔍
Tip Güvenliği

Ham tip kullanımından doğan çalışma zamanı hatalarını önleyebilirsiniz.

🛠️
Kalıtım Kuralı

Jenerik tiplerde alt tip ilişkisinin neden işlemediğini açıklayabilirsiniz.

📈
Erasure Bilgisi

Type erasure ve bridge metot kavramlarını bayt kodu düzeyinde yorumlayabilirsiniz.

🧩
Çözüm Kalıpları

Class token ile jenerik tip kısıtlarını aşabilirsiniz.

🚀
Tasarım Becerisi

Result, Pair ve Repository gibi jenerik API'ler tasarlayabilirsiniz.

Kimler İçin Uygundur?

  • Collections kullanan
  • kendi jenerik sınıf
  • kütüphanelerini yazmak isteyen ve ham tip (raw type) uyarılarını anlamak isteyen Java geliştiricileri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Collections kullanan, kendi jenerik sınıf ve kütüphanelerini yazmak isteyen ve ham tip (raw type) uyarılarını anlamak isteyen Java geliştiricileri için uygundur.
Generics ve wildcard konuları aynı eğitimde mi?
Bu eğitim tip parametrelerine odaklanır; wildcard (?) ve type capture konusu ayrı olan "Wildcards and Type Capture" eğitiminde derinlemesine işlenir.
Type erasure neden önemli?
Erasure, jenerik dizi, instanceof ve new T() gibi kısıtların nedenidir; eğitimde javap çıktılarıyla gösterilir ve Class token gibi pratik çözümler uygulanır.
Eğitim için hangi ön bilgi ve ortam gerekir?
Değişken, döngü, metot ve sınıf tanımlayabilecek düzeyde temel Java bilgisi beklenir. Sınıf, kalıtım, arayüz ve polimorfizm kavramlarına aşinalık faydalıdır. JDK 17 veya üzeri ile IntelliJ IDEA ya da Eclipse kurulu bir bilgisayar gerekir.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir. 2 günlük program boyunca uygulama çalışmalarının tamamlanması beklenir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Advanced Features in Java: Using Generic Type Parameters Eği Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Java ve JVMScala & Spark And Hadoop Eğitimi
Yazılım Geliştirme Eğitimleri

Scala & Spark And Hadoop Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Scala, Spark ve Hadoop eğitimi: HDFS, YARN, DataFrame, Spark SQL, Parquet, Structured Streaming, AQE ve MLlib uygulamalı işlenir.

Detayları Gör →
Java ve JVMScala Programlama Dili Eğitimi
Yazılım Geliştirme Eğitimleri

Scala Programlama Dili Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

Scala programlama dili eğitimi: Scala 3, case class, trait, ADT, koleksiyonlar, pattern matching, Option/Either, given/using ve Future.

Detayları Gör →
Java ve JVMSerialization in Java: Getting Started with Object Serialization Eğitimi
Yazılım Geliştirme Eğitimleri

Serialization in Java: Getting Started with Object Serialization Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Java nesne serileştirme eğitimi: Serializable, serialVersionUID, transient, özel serileştirme, deserialization güvenliği ve alternatifler.

Detayları Gör →
Java ve JVMSerialization in Java: Using JSON in Java for Serialization & Parsing Eğitimi
Yazılım Geliştirme Eğitimleri

Serialization in Java: Using JSON in Java for Serialization & Parsing Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Java'da JSON serileştirme ve ayrıştırma eğitimi: JSON-P, JSON-B, Jackson, JsonNode, özel serializer, hata yönetimi ve API entegrasyonu.

Detayları Gör →
Java ve JVMSerialization in Java: Using JSON Simple for Serialization & Parsing Eğitimi
Yazılım Geliştirme Eğitimleri

Serialization in Java: Using JSON Simple for Serialization & Parsing Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

JSON.simple ile Java eğitimi: JSONObject, JSONArray, JSONParser, nesne eşleme, akışlı okuma, dosya işlemleri ve Jackson ile karşılaştırma.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn