Çalışmalara dön

Java & Spring Eğitim Portalı

Bu çalışmanın orijinali React + Spring Boot mimarisindeydi: backend, örnek Java kodunu derleyip canlı çalıştırıyordu. Burada tüm anlatımları ve örnekleri tek bir Next.js frontend’ine topladım. Çalıştırılabilir örneklerin çıktısı yerel JDK 21 ile gerçekten koşturularak önceden yakalandı; tarayıcıda JVM olmadığından “Çalıştır” bu hazır çıktıyı gösterir. Spring/Spring Boot örnekleri (Gradle ortamı gerektiren) kod + anlatım olarak, açık etiketle sunulur.

172
Konu
351
Örnek
271
Gerçek çıktı
6
Kategori
Java

Java'ya Giriş ve Temeller

Bu bölümde Java yolculuğuna ilk adımı atıyoruz. Amacımız, daha sonra gelecek tüm konuların üzerine inşa edileceği sağlam bir zemin kurmak: Java'nın ne olduğunu, kodun nasıl çalıştığını, verileri nasıl sakladığımızı ve…

3 örnek3 çalıştırılabilir
Java

Kontrol Yapıları

Bir program, satırları yukarıdan aşağıya çalıştırır. Ama gerçek hayattaki problemler bu kadar düz değildir: bazen bir koşula göre farklı bir yol seçmemiz, bazen bir işi defalarca tekrarlamamız gerekir. İşte kontrol ya…

3 örnek3 çalıştırılabilir
Java

Metotlar ve Diziler

Programlar büyüdükçe aynı kodu tekrar tekrar yazmak hem yorucu hem de hataya açıktır. Metotlar, bir işi bir kez tanımlayıp istediğimiz kadar çağırmamızı sağlar; kodu parçalara böler, okunur ve test edilebilir kılar. D…

3 örnek3 çalıştırılabilir
Java

Nesne Yönelimli Programlama: Temeller

Şimdiye kadar veriyi (değişkenler, diziler) ve davranışı (metotlar) ayrı ayrı düşündük. Nesne yönelimli programlama (OOP) bunları bir araya getirir: gerçek dünyadaki bir varlığı, hem durumu (verisi) hem de davranışı (…

3 örnek3 çalıştırılabilir
Java

Kalıtım ve Çok Biçimlilik

OOP'nin temellerinde nesneleri sınıflarla modellemeyi gördük. Şimdi iki güçlü mekanizmaya geçiyoruz: kalıtım sayesinde var olan bir sınıfın özelliklerini yeniden kullanır, çok biçimlilik sayesinde farklı nesneleri tek…

3 örnek3 çalıştırılabilir
Java

Soyutlama: Abstract Sınıflar ve Interface'ler

Soyutlama, OOP'nin dördüncü temel taşıdır. Fikir basit ama güçlüdür: bir nesneyle çalışırken onun ne yaptığına odaklanır, nasıl yaptığını gizleriz. Bir televizyonun uzaktan kumandasını kullanırken içindeki elektroniği…

3 örnek3 çalıştırılabilir
Java

String İşlemleri ve StringBuilder

Metinlerle çalışmak, neredeyse her programın bir parçasıdır: kullanıcı adları, dosya içerikleri, mesajlar... Java'da metin denince akla String gelir. Bu bölümde String'in nasıl çalıştığını, en sık kullanılan metotları…

3 örnek3 çalıştırılabilir
Java

Hata Yönetimi (Exceptions)

Hiçbir program kusursuz bir dünyada çalışmaz: dosya bulunamaz, ağ kopar, kullanıcı beklenmedik veri girer, sıfıra bölünür. İyi bir yazılımcı bu durumları yok saymaz; onları öngörür ve zarifçe ele alır. Java'da bunun a…

3 örnek3 çalıştırılabilir
Java

Collections Framework

Dizilerle sabit sayıda veriyi tutmayı öğrendik. Ama gerçek programlarda veri sürekli büyür, küçülür, sıralanır, gruplanır. Collections Framework, Java'nın bu ihtiyaçlar için sunduğu zengin veri yapıları kütüphanesidir…

3 örnek3 çalıştırılabilir
Java

Generics (Jenerikler)

Bir önceki bölümde List<String>, Map<String, Integer> gibi yazımlar gördün. Açılı parantez içindeki tipler işte generics'tir. Generics, bir sınıf veya metodu belirli bir tipe bağlamadan, "hangi tiple çalışacağı sonrad…

3 örnek3 çalıştırılabilir
Java

Enum ve Wrapper Sınıfları

Bu bölümde iki küçük ama günlük hayatta sık kullanılan konuyu ele alıyoruz. Enum, sabit ve sınırlı bir değer kümesini tip güvenli biçimde temsil eder (haftanın günleri, sipariş durumu, yönler). Wrapper sınıfları ise i…

3 örnek3 çalıştırılabilir
Java

Lambda İfadeleri ve Functional Interface'ler

Java 8, dile köklü bir yenilik getirdi: davranışı (kodu) bir değer gibi taşıyabilmek. Lambda ifadeleri sayesinde bir metodu, bir değişkene atayıp parametre olarak geçebiliriz. Bu, koleksiyonları işlemekten olay dinley…

3 örnek3 çalıştırılabilir
Java

Stream API

Bir koleksiyondaki verileri işlerken genelde aynı şeyleri yaparız: filtrele, dönüştür, sırala, topla. Geleneksel for döngüleriyle bu işler hem uzar hem de "ne yapıldığı" "nasıl yapıldığı"nın içinde kaybolur. Stream AP…

3 örnek3 çalıştırılabilir
Java

Optional ile Null Güvenliği

null, programlamanın en sık hata kaynaklarından biridir; öyle ki onu icat eden Tony Hoare buna "milyar dolarlık hata" demiştir. Bir metot null döndürdüğünde, çağıran taraf bunu kontrol etmeyi unutursa kaçınılmaz sonuç…

3 örnek3 çalıştırılabilir
Java

Dosya İşlemleri ve I/O

Şimdiye kadar veriler programın içinde, bellekte yaşadı. Ama gerçek uygulamalar dış dünyayla konuşur: dosya okur/yazar, ağdan veri alır, kayıt tutar. Bu bölümde Java'da girdi/çıktı (I/O) işlemlerini, hem klasik akış (…

3 örnek3 çalıştırılabilir
Java

Çoklu İş Parçacığı ve Eşzamanlılık

Modern bilgisayarların birden çok çekirdeği var ve gerçek uygulamalar aynı anda birçok iş yapar: bir gösterge paneli onlarca servisten veri toplar, bir e-ticaret sitesi binlerce isteği aynı anda karşılar. Çoklu iş par…

3 örnek3 çalıştırılabilir
Java

Reflection ve Annotations

Şimdiye kadar yazdığın kod, derleme anında neyle çalışacağını biliyordu. Ama Spring, Hibernate, Jackson, JUnit gibi araçlar bir "sihir" yapıyormuş gibi görünür: sınıflarını tanır, nesnelerini oluşturur, alanlarını oku…

3 örnek3 çalıştırılabilir
Java

JDBC ile Veritabanı Bağlantısı

Gerçek uygulamalar verilerini kalıcı olarak saklamak ister; işte burada veritabanları devreye girer. JDBC (Java Database Connectivity), Java'nın ilişkisel veritabanlarıyla konuşmak için sunduğu standart API'dir. Sprin…

3 örnek
Java

Build Araçları ve Bağımlılık Yönetimi (Maven / Gradle)

Tek dosyalık örneklerden gerçek projelere geçtiğinde yeni bir ihtiyaç doğar: onlarca kaynak dosyayı derlemek, başkalarının yazdığı kütüphaneleri (bağımlılıkları) indirip projeye eklemek, testleri çalıştırmak ve sonund…

3 örnek3 çalıştırılabilir
Java

Tasarım Desenleri (Design Patterns)

Yazılımcılar yıllar içinde aynı problemlerle defalarca karşılaştı: "tek bir örnek nasıl garanti edilir?", "nesne oluşturma mantığı nasıl gizlenir?", "uyumsuz iki arayüz nasıl birleştirilir?", "bir algoritma çalışma za…

3 örnek3 çalıştırılabilir
Java

Java Sürüm Evrimi (8 → 25)

Java, 2014'teki 8 sürümünden bu yana her 6 ayda bir yeni sürüm, her 2 yılda bir uzun destekli (LTS) sürüm çıkarıyor. LTS'ler: 8, 11, 17, 21, 25. Bu bölümün amacı sadece "şu özellik hangi sürümde geldi" demek değil; he…

4 örnek4 çalıştırılabilir
Java

Sürüm Geçişi: Riskler ve Kazanımlar

Yeni bir Java sürümüne geçmek genellikle kârlıdır — ama "derle, çalıştır, bitti" kadar basit değildir. Her büyük geçişin somut kazanımları (performans, güvenlik, dil özellikleri) olduğu kadar riskleri de (kaldırılan A…

3 örnek3 çalıştırılabilir
Java

Ağ Programlama (Networking) Temelleri

Bugün yazdığımız uygulamaların neredeyse hiçbiri yalnız çalışmaz: bir mobil uygulama sunucuya istek atar, bir web sitesi veritabanına bağlanır, mikroservisler birbirleriyle konuşur. Bütün bunların altında ağ programla…

3 örnek3 çalıştırılabilir
Java

Socket Programlama

Önceki bölümde ağın temel kavramlarını ve TCP/UDP'yi tanıdık. Şimdi TCP soketleriyle gerçek istemci-sunucu uygulamaları yazmayı derinleştiriyoruz. Soket, iki makine (veya aynı makinedeki iki süreç) arasındaki iletişim…

3 örnek3 çalıştırılabilir
Java

URL ve URL İşlemleri

Soket programlamada ham TCP/UDP kanallarıyla çalıştık. Ama web dünyasında kaynaklara genelde adresleriyle (URL) erişiriz: https://site.com/urunler?kategori=java. Java, bu adresleri ayrıştırmak, parçalarına ayırmak, gü…

3 örnek3 çalıştırılabilir
Java

URLConnection, HttpURLConnection ve HttpClient

URL'leri ayrıştırmayı öğrendik; şimdi onlara bağlanıp veri alıp vermeyi ele alıyoruz. Bir mobil uygulamanın API'ye istek atması, bir servisin başka bir servisi çağırması — hepsi HTTP üzerinden olur. Java bunu üç katma…

3 örnek3 çalıştırılabilir
Java

Erişim Belirleyiciler (Access Modifiers)

Nesne yönelimli tasarımın kalbinde kapsülleme (encapsulation) yatar: bir sınıfın iç ayrıntılarını gizleyip dışarıya yalnızca güvenli, kontrollü bir arayüz sunmak. Bunu sağlayan araç erişim belirleyicileridir. Her alan…

2 örnek2 çalıştırılabilir
Java

Paketler (Packages)

Bir proje büyüdükçe yüzlerce, binlerce sınıf olur. Bunları tek bir klasöre yığmak hem kaosa yol açar hem de isim çakışmalarına (iki farklı Date sınıfı gibi) neden olur. Paketler, sınıfları mantıksal gruplara ayıran ve…

2 örnek2 çalıştırılabilir
Java

Aggregation ve Composition (HAS-A İlişkisi)

Nesneler tek başına yaşamaz; birbirleriyle ilişkilidir. Kalıtım bölümünde IS-A ("bir tür ... olma": Köpek bir Hayvandır) ilişkisini gördük. Ama nesneler arası en yaygın ilişki aslında HAS-A ("sahip olma": Araba bir Mo…

2 örnek2 çalıştırılabilir
Java

İç Sınıflar (Inner Classes)

Java'da bir sınıfın içine başka bir sınıf yerleştirebilirsin. Bu iç sınıflar (nested classes), yalnızca bir yerde kullanılan yardımcı yapıları, ait oldukları sınıfın yanında tutmanı sağlar — kod hem düzenli hem de kap…

2 örnek2 çalıştırılabilir
Java

Anonim Sınıflar (Anonymous Classes)

Bazen bir arayüzü veya soyut sınıfı yalnızca bir kez, sadece o anda kullanmak için uygulamak istersin; ona ayrı bir isim/dosya vermek gereksizdir. Anonim sınıflar tam da bunun içindir: bir sınıfı tanımladığın yerde, i…

2 örnek2 çalıştırılabilir
Java

Singleton Sınıf

Bazı nesnelerden uygulamada tek bir tane olmalıdır: bir yapılandırma yöneticisi, bir log sistemi, bir veritabanı bağlantı havuzu. Bunlardan birden çok oluşturmak hem kaynak israfı hem de tutarsızlık (farklı ayar kopya…

3 örnek3 çalıştırılabilir
Java

Statik ve Dinamik Bağlama (Static & Dynamic Binding)

Bir metot çağrısı yazdığında — nesne.metot() — Java'nın hangi gerçek metodu çalıştıracağına karar vermesi gerekir. Bu karara bağlama (binding) denir ve iki zamanda olabilir: derleme anında (statik/early binding) veya…

3 örnek3 çalıştırılabilir
Java

Başlatma Blokları (Initializer Blocks)

Bir nesne new ile oluşturulurken veya bir sınıf ilk kez yüklenirken, alanların belirli değerlerle hazırlanması gerekir. Çoğu zaman bunu constructor'da veya alan tanımında yaparız. Ama Java iki ek araç sunar: örnek baş…

2 örnek2 çalıştırılabilir
Java

Iteratorlar (Iterators)

Bir koleksiyonun elemanlarını tek tek gezmek, programlamanın en sık yaptığı işlerden biridir. Ama farklı koleksiyonların (liste, küme, kuyruk...) iç yapıları çok farklıdır. Iterator, bu farkı gizleyen ortak bir gezint…

3 örnek3 çalıştırılabilir
Java

Comparable Arayüzü (Doğal Sıralama)

Nesneleri sıralamak istediğimizde, Java'nın "hangisi önce gelir?" sorusunu yanıtlaması gerekir. Sayılar için bu açıktır (küçükten büyüğe), String için alfabetiktir. Peki kendi sınıfların — Urun, Kisi? İşte burada Comp…

2 örnek2 çalıştırılabilir
Java

Comparator (Esnek ve Çoklu Sıralama)

Comparable bir tipe tek bir doğal sıra kazandırır. Ama gerçek hayatta aynı veriyi farklı zamanlarda farklı ölçütlere göre sıralamak isteriz: ürünleri kâh fiyata, kâh ada, kâh stoğa göre. Sınıfın içine her sıralamayı y…

3 örnek3 çalıştırılabilir
Java

Enumeration ve Legacy (Eski) Yapılar

Java'nın koleksiyon dünyası iki katmanlıdır: 1996'daki ilk sürümlerden kalan eski (legacy) sınıflar (Vector, Stack, Hashtable, Enumeration) ve Java 1.2 ile gelen modern Collections Framework (ArrayList, ArrayDeque, Ha…

2 örnek2 çalıştırılabilir
Java

Scanner Sınıfı

Scanner, Java'da metin girdisini okuyup parçalara ayırmanın en pratik yoludur. Klavyeden kullanıcı girdisi almak, bir dosyayı satır satır işlemek veya bir metni belirteçlere (token) ayırmak için kullanılır. Tek bir sı…

2 örnek2 çalıştırılabilir
Java

ArrayList Sınıfı

ArrayList, Java'da açık ara en çok kullanılan koleksiyondur. İçte boyutu otomatik büyüyen bir dizi tutar; böylece sabit boyutlu dizilerin (int[]) aksine eleman ekledikçe genişler. İndeksli hızlı erişim, kolay ekleme/s…

2 örnek2 çalıştırılabilir
Java

LinkedList Sınıfı

LinkedList, ArrayList'e alternatif bir List uygulamasıdır; ama iç yapısı tamamen farklıdır. Dizi yerine çift yönlü bağlı liste (doubly linked list) kullanır: her eleman bir "düğümdür" ve kendinden önceki ve sonraki dü…

2 örnek2 çalıştırılabilir
Java

HashMap Sınıfı

HashMap, bir anahtarı bir değere eşleyen koleksiyondur (key → value) ve ArrayList'ten sonra en çok kullanılan veri yapısıdır. "Kullanıcı adından kullanıcıya", "ürün kodundan stoğa", "kelimeden sayısına"... gibi her tü…

2 örnek2 çalıştırılabilir
Java

TreeMap, LinkedHashMap ve EnumMap

HashMap hızlıdır ama elemanları sırasız tutar. Çoğu zaman buna ihtiyacın yoktur — ama bazen anahtarların sıralı olması, ekleme sırasının korunması veya enum anahtarlar için özel hız gerekir. Bu konuda Map ailesinin üç…

2 örnek2 çalıştırılabilir
Java

Set Aileleri (HashSet, LinkedHashSet, TreeSet, EnumSet)

Set (küme), benzersiz elemanlar topluluğudur: aynı eleman iki kez bulunamaz. Bir listede yinelenenleri temizlemek, "bu öğe daha önce görüldü mü?" diye sormak veya matematiksel küme işlemleri yapmak için kullanılır. Ma…

2 örnek2 çalıştırılabilir
Java

PriorityQueue ve ArrayDeque

Bazı problemler "sıradaki elemanı" özel bir kurala göre ister: ya uçlardan (baş/son) erişim (yığın, kuyruk) ya da önceliğe göre erişim. Java bu iki ihtiyaca iki güçlü sınıfla yanıt verir: çift uçlu kuyruk ArrayDeque v…

2 örnek2 çalıştırılabilir
Java

StringBuilder Sınıfı

String Java'da değişmezdir (immutable): bir kez oluşturulan metin asla değişmez; "değiştirme" gibi görünen her işlem aslında yeni bir String üretir. Bu, güvenlik ve thread-güvenliği için harikadır ama bir metni parça…

2 örnek2 çalıştırılabilir
Java

Java 8 Yenilikleri (2014, LTS)

Java 8, dilin tarihindeki en dönüştürücü sürümdür. Fonksiyonel programlama öğelerini Java'ya getirerek nasıl kod yazdığımızı kökten değiştirdi. Bugün yazdığın modern Java'nın temeli bu sürümle atıldı; bu yüzden her bi…

2 örnek2 çalıştırılabilir
Java

Java 9 Yenilikleri (2017)

Java 9, dilin en büyük yapısal değişikliğini getirdi: Modül Sistemi (JPMS / Project Jigsaw). Bunun yanında günlük kodu kolaylaştıran birçok küçük ama değerli ekleme yaptı: koleksiyon fabrika metotları, Stream/Optional…

2 örnek2 çalıştırılabilir
Java

Java 10 Yenilikleri (2018)

Java 10, yarı yıllık sürüm temposunun ilk adımıydı ve görece küçük ama günlük kodda çok hissedilen bir yenilikle öne çıktı: var (yerel değişken tip çıkarımı). Ayrıca değişmez koleksiyon oluşturmayı kolaylaştıran topla…

2 örnek2 çalıştırılabilir
Java

Java 11 Yenilikleri (2018, LTS)

Java 11, Java 8'den sonra ikinci büyük LTS sürümüdür ve uzun yıllar üretimde en yaygın taban oldu. Çok sayıda günlük kolaylık getirdi: yeni String metotları, standart HttpClient, dosya G/Ç kısayolları, lambda'da var v…

2 örnek2 çalıştırılabilir
Java

Java 12 Yenilikleri (2019)

Java 12, dil ergonomisini iyileştiren önizleme özellikleri ve pratik kütüphane eklemeleri getirdi. En önemlisi, sonraki sürümlerde standartlaşacak switch ifadeleridir (switch expressions); ayrıca yeni String metotları…

2 örnek2 çalıştırılabilir
Java

Java 13 Yenilikleri (2019)

Java 13, iki önizleme özelliğiyle dil ergonomisini ileri taşıdı: çok satırlı metni dertten kurtaran text blocks ve switch ifadelerini tamamlayan yield anahtar kelimesi. İkisi de sonraki sürümlerde standartlaştı ve JDK…

2 örnek2 çalıştırılabilir
Java

Java 14 Yenilikleri (2020)

Java 14, önceki sürümlerin önizleme özelliklerini olgunlaştırdı ve hata ayıklamayı kökten kolaylaştıran bir yenilik getirdi. Öne çıkanlar: switch ifadelerinin standartlaşması, pattern matching for instanceof (önizleme…

2 örnek2 çalıştırılabilir
Java

Java 15 Yenilikleri (2020)

Java 15, iki önemli dil özelliğini öne çıkardı: sealed sınıflar (önizleme) ve text blocks'un standartlaşması. Sealed sınıflar, kalıtım hiyerarşilerini kontrol altına alarak güvenli ve eksiksiz modelleme sağlar; text b…

2 örnek2 çalıştırılabilir
Java

Java 16 Yenilikleri (2021)

Java 16, önceki sürümlerin iki büyük önizleme özelliğini standartlaştırdı: records ve pattern matching for instanceof. Ayrıca pratik stream eklemeleri (toList, mapMulti) getirdi. Bu, Java 17 LTS'e giden yolun son adım…

2 örnek2 çalıştırılabilir
Java

AWT'ye Giriş (Abstract Window Toolkit)

AWT (Abstract Window Toolkit), Java'nın ilk grafik arayüz (GUI) kütüphanesidir (1996). Pencere, buton, metin kutusu gibi bileşenleri ve bunların olaylarını (tıklama, tuş) yönetir. Bugün masaüstü GUI'de yerini büyük öl…

2 örnek2 çalıştırılabilir
Java

Swing'e Giriş

Swing, Java'nın AWT üzerine kurulu, daha zengin ve platformdan bağımsız masaüstü GUI kütüphanesidir (1998). AWT'nin işletim sistemine bağlı "ağır" bileşenlerinin aksine, Swing bileşenleri Java ile çizilir (lightweight…

2 örnek2 çalıştırılabilir
Java

Servlet'e Giriş

Servlet, sunucuya gelen bir HTTP isteğini işleyip yanıt üreten bir Java sınıfıdır. Java'nın web teknolojilerinin temelidir: bugün kullandığın Spring MVC, JSF ve neredeyse tüm Java web çatıları, perde arkasında servlet…

2 örnek2 çalıştırılabilir
Java

JSP'ye Giriş (JavaServer Pages)

JSP (JavaServer Pages), HTML içine dinamik Java verisi gömmenin klasik yoludur. Servlet'le saf Java içinden HTML yazmak (out.write("<h1>...")) zahmetlidir; JSP bunu tersine çevirir: bir HTML sayfası yazarsın, içine öz…

2 örnek2 çalıştırılabilir
Java

Düzenli İfadeler (Regular Expressions / Regex)

Regex, metin içinde desen aramak, doğrulamak ve değiştirmek için kullanılan güçlü bir mini dildir. "Bu metin geçerli bir e-posta mı?", "şu logdaki tüm tarihleri bul", "kart numarasını maskele" gibi işleri tek satırda…

2 örnek2 çalıştırılabilir
Java

Serialization (Serileştirme)

Serialization, bir Java nesnesini byte dizisine çevirme; deserialization ise byte dizisini geri nesneye dönüştürme işlemidir. Bu sayede bir nesneyi diske kaydedebilir, ağ üzerinden gönderebilir veya bir oturumda sakla…

2 örnek2 çalıştırılabilir
Java

Recursion (Özyineleme)

Özyineleme (recursion), bir metodun kendini çağırmasıdır. İlk bakışta tuhaf görünse de, doğası gereği "kendine benzeyen" problemler için (ağaç gezme, böl-ve-fethet, geri izleme) son derece doğal ve okunaklı bir araçtı…

2 örnek2 çalıştırılabilir
Java

Process API (Süreç Yönetimi)

Bazen Java programının dışındaki programları çalıştırman gerekir: bir sistem komutu, başka bir betik, harici bir araç. Veya çalışan süreçler hakkında bilgi almak istersin (PID, başlangıç zamanı, ebeveyn). Java'nın Pro…

2 örnek2 çalıştırılabilir
Java

Base64 Kodlama

Base64, ikili (binary) veriyi yalnızca güvenli ASCII karakterleriyle (A–Z, a–z, 0–9, +, /) temsil eden bir kodlama şemasıdır. Amaç, yalnızca metin taşıyabilen kanallardan (JSON, XML, e-posta, URL, HTTP başlıkları) iki…

2 örnek2 çalıştırılabilir
Java

Arrays Yardımcı Sınıfı

Diziler (int[], String[]...) Java'nın en temel veri yapısıdır: sabit boyutlu, hızlı, bellek açısından kompakt. Ama dizilerin metotları yoktur — sıralamak, aramak, kopyalamak, karşılaştırmak için java.util.Arrays yardı…

2 örnek2 çalıştırılabilir
Java

BitSet Sınıfı

BitSet, otomatik büyüyen bir bit dizisidir: her bayrak (true/false) yalnızca 1 bit yer kaplar. Çok sayıda açık/kapalı durumu (izinler, varlık kümeleri, "görüldü mü" işaretleri) tutmak için boolean[]'dan çok daha kompa…

2 örnek2 çalıştırılabilir
Java

Properties Sınıfı

Properties, anahtar-değer çiftlerinden oluşan bir yapılandırma deposudur ve hem anahtarlar hem değerler String'tir. Java uygulamalarında ayarları (veritabanı adresi, port, özellik bayrakları) ve uluslararasılaştırma (…

2 örnek2 çalıştırılabilir
Java

Math Sınıfı

Math, matematiksel işlemler için statik metotlar ve sabitler sunan yardımcı sınıftır. Mutlak değer, üs/kök, yuvarlama, trigonometri, logaritma... hepsi buradadır. Ayrıca bu konu, sayılarla çalışırken her geliştiricini…

2 örnek2 çalıştırılabilir
Java

Sayı Wrapper Sınıfları ve Autoboxing

Java'da iki tür veri vardır: ilkel tipler (int, double, boolean, char...) ve nesneler. İlkel tipler hızlı ve kompakttır ama nesne değildir — metotları yoktur, null olamaz ve koleksiyonlarda (List<int> yazılamaz) kulla…

2 örnek2 çalıştırılabilir
Java

Character ve Boolean Sınıfları

İki temel ilkel tipin — char ve boolean — wrapper sınıfları olan Character ve Boolean, küçük ama günlük kodda sık kullanılan yardımcılar sunar. Character, metin ayrıştırma ve doğrulamanın temelidir; Boolean ise mantık…

2 örnek2 çalıştırılabilir
Java

CompletableFuture (Asenkron Programlama)

Modern uygulamalar sürekli bekler: bir API'den yanıt, veritabanından sonuç, dosyadan veri. Bu beklemeleri tek tek, sırayla yapmak (senkron) zaman kaybıdır — özellikle birbirinden bağımsız işleri paralel yürütebilecekk…

2 örnek2 çalıştırılabilir
Java

Komut Satırı Argümanları

Bir programa çalışırken dışarıdan veri vermenin en temel yolu komut satırı argümanlarıdır. main metodunun String[] args parametresi, programı başlatırken verdiğin değerleri taşır. Komut satırı araçları (CLI), betikler…

2 örnek2 çalıştırılabilir
Java

Marker Interface (İşaretleyici Arayüz)

Marker (işaretleyici) interface, içinde hiç metot olmayan bir arayüzdür. Tuhaf görünür — metot yoksa ne işe yarar? Amacı bir sınıfa etiket koymaktır: "bu tip şu yeteneğe/izne sahiptir". Derleyici veya çalışma zamanı b…

2 örnek2 çalıştırılabilir
Java

@Deprecated ve Anotasyonlar

Anotasyonlar (annotations), koda meta-veri ekler: @Override, @Deprecated, @Entity, @Test... Kodun davranışını doğrudan değiştirmezler ama derleyici, araçlar ve framework'ler bunları okuyup ona göre davranır. Reflectio…

2 örnek2 çalıştırılabilir
Java

JVM: Garbage Collection ve JIT

Java'nın "yaz bir kez, her yerde çalış" gücü ve performansının arkasında JVM (Java Virtual Machine) vardır. JVM'in iki kritik mekanizması, programının belleğini ve hızını otomatik olarak yönetir: Garbage Collection (ç…

2 örnek2 çalıştırılabilir
Java

Java vs C++

Java, 1990'larda büyük ölçüde C++'ın karmaşıklığına ve tehlikelerine bir yanıt olarak tasarlandı. C++'ın C-benzeri sözdizimini ve nesne yönelimli yapısını korurken; elle bellek yönetimi, işaretçiler ve çoklu kalıtım g…

2 örnek2 çalıştırılabilir
Java

JVM Mimarisi

JVM (Java Virtual Machine), Java'nın "bir kez yaz, her yerde çalıştır" (write once, run anywhere) sözünü mümkün kılan motordur. Java kodu doğrudan makine koduna değil, platformdan bağımsız bytecode'a derlenir; JVM bu…

2 örnek2 çalıştırılabilir
Java

JDK vs JRE vs JVM

Java dünyasına yeni girenlerin en çok karıştırdığı üç kısaltma: JDK, JRE, JVM. Üçü de ilişkilidir ama farklı şeylerdir ve birbirinin içine geçer. Bu ayrımı netleştirmek, "neyi kurmalıyım?", "üretim sunucusunda ne gere…

2 örnek2 çalıştırılabilir
Java

Type Casting (Tip Dönüşümü)

Type casting, bir değeri/nesneyi bir tipten başka bir tipe dönüştürmektir. Java güçlü tipli bir dildir; bu dönüşümler kurallara bağlıdır. İki tamamen farklı bağlam vardır: ilkel tipler arasında (sayısal dönüşüm) ve ne…

2 örnek2 çalıştırılabilir
Java

Unicode ve Karakter Kodlama

Metin işlemenin altında, çoğu zaman görmezden geldiğimiz ama hata yaptığında baş ağrıtan bir katman vardır: karakter kodlama. "Türkçe karakterler neden bozuk çıktı?", "emoji'nin uzunluğu neden 2?", "bu dosya neden anl…

2 örnek2 çalıştırılabilir
Java

Date & Time (java.time)

Tarih ve saatle çalışmak, neredeyse her uygulamada gereklidir: kayıt zamanı, doğum tarihi, randevu, zaman damgası, geri sayım. Java 8'e kadar bu, hatalı ve sinir bozucu Date/Calendar sınıflarıyla yapılırdı. Java 8, ja…

2 örnek2 çalıştırılabilir
Java

Operatörler

Operatörler, değerler üzerinde işlem yapan sembollerdir: toplama, karşılaştırma, mantıksal birleştirme... Programlamanın en temel yapı taşlarıdır ve her satırda kullanılırlar. Bu konu, Java operatörlerini kategori kat…

2 örnek2 çalıştırılabilir
Java

Bitwise (Bit Düzeyi) Operatörler

Bit operatörleri, sayıları bir bütün olarak değil, onları oluşturan tek tek bitler (0/1) üzerinde işler. Günlük iş kodunda nadir görünseler de; izin/bayrak sistemleri, performans-kritik kod, grafik, ağ protokolleri ve…

2 örnek2 çalıştırılabilir
Java

Javadoc (Kod Dokümantasyonu)

Kod yalnızca çalışması için değil, başkalarının (ve gelecekteki senin) anlaması için de yazılır. Javadoc, Java'nın standart dokümantasyon sistemidir: kaynak koddaki özel yorumlardan profesyonel HTML API dokümanları ür…

2 örnek2 çalıştırılabilir
Java

Değişken Kapsamı (Variable Scope)

Bir değişkenin kapsamı (scope), ona nereden erişilebileceğini ve ne kadar süre yaşayacağını belirler. Yanlış kapsam seçimi, "değişken bulunamıyor" derleme hatalarından, "değer beklediğim gibi değişmedi" mantık hatalar…

2 örnek2 çalıştırılabilir
Java

Constructor'lar (Yapıcılar)

Constructor (yapıcı), bir nesne new ile oluşturulurken otomatik çağrılan özel bir metottur. Görevi, nesneyi geçerli bir başlangıç durumuna getirmektir — alanları anlamlı değerlerle doldurmak. İyi tasarlanmış construct…

2 örnek2 çalıştırılabilir
Java

Paketleme ve Dağıtım (JAR, Multi-Release JAR, jlink, jpackage)

Kodu yazıp derlemek bir şey; onu başkalarının çalıştırabileceği bir artefakt olarak paketleyip dağıtmak başka bir şeydir. Bu konu, Java uygulamalarını paketleme ve dağıtma araçlarını ele alır: klasik JAR'dan, sürüme d…

2 örnek2 çalıştırılabilir
Java

E-posta Gönderme

Birçok uygulama e-posta gönderir: kayıt onayı, parola sıfırlama, bildirim, fatura. Java'da bu, standart kütüphanede değil, Jakarta Mail (eski adıyla JavaMail) kütüphanesiyle yapılır; Spring kullanıyorsan JavaMailSende…

1 örnek1 çalıştırılabilir
Java

Kaldırılmış ve Eski (Legacy) Özellikler

Java 25+ yıllık bir dildir ve geriye dönük uyumluluğa büyük önem verir. Yine de zamanla bazı özellikler kullanımdan kaldırılır (deprecated) ve sonunda silinir (removed). Bir geliştirici olarak, eski öğretici/kod örnek…

1 örnek1 çalıştırılabilir
Java

Java 17 Yenilikleri (2021, LTS)

Java 17, Java 11'den sonra üçüncü büyük LTS sürümüdür ve uzun süre modern Java'nın fiili standardı oldu. Java 9–16 arasında önizleme olarak olgunlaşan birçok özelliği standartlaştırdı; en önemlisi sealed sınıflardır.…

2 örnek2 çalıştırılabilir
Java

Java 18 Yenilikleri (2022)

Java 18, LTS olmayan bir ara sürümdür ve görece küçük ama pratikte hissedilen iyileştirmeler getirdi. En önemlisi, yıllardır süren bir taşınabilirlik sorununu çözen UTF-8'in varsayılan karakter kümesi olmasıdır (JEP 4…

2 örnek2 çalıştırılabilir
Java

Java 19 Yenilikleri (2022)

Java 19, LTS olmayan bir sürüm olsa da, Java'nın geleceğini şekillendiren iki büyük özelliğin önizleme olarak ilk kez göründüğü sürümdür: Sanal Thread'ler (Project Loom) ve Record Patterns. Bu özellikler Java 21'de st…

2 örnek2 çalıştırılabilir
Java

Java 20 Yenilikleri (2023)

Java 20, LTS olmayan bir rafine etme (refinement) sürümüdür: yeni "büyük" özellikler getirmek yerine, Java 21 LTS'te standartlaşacak özellikleri önizleme iterasyonlarıyla olgunlaştırdı. Bu yüzden Java 20'yi, 21'e gide…

1 örnek1 çalıştırılabilir
Java

Java 21 Yenilikleri (2023, LTS)

Java 21, Java 17'den sonraki büyük LTS sürümüdür ve son yılların en önemli sürümlerinden biridir. Java 19-20 boyunca önizleme olarak olgunlaşan büyük özellikleri standartlaştırdı: sanal thread'ler, record patterns, sw…

2 örnek2 çalıştırılabilir
Java

Java 22 Yenilikleri (2024)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Bu portal JDK 21 üzerinde çalışır; Java 22+ > özellikleri burada derlenmez. Aşağıdaki kod parçacıkları JDK 22 gerektirir ve yalnızca > tanıtım amaçlıdır. Çalışan sürümler…

0 örnek
Java

Java 23 Yenilikleri (2024)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Portal JDK 21 üzerinde çalışır; Java 23+ > özellikleri burada derlenmez. Kod parçacıkları JDK 23 gerektirir, tanıtım amaçlıdır.

0 örnek
Java

Java 24 Yenilikleri (2025)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Portal JDK 21 üzerinde çalışır; Java 24+ > özellikleri burada derlenmez. Kod parçacıkları JDK 24 gerektirir, tanıtım amaçlıdır.

0 örnek
Java

Java 25 Yenilikleri (2025, LTS) — En Yeni Sürüm

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Portal JDK 21 üzerinde çalışır; Java 25 > özellikleri burada derlenmez. Kod parçacıkları JDK 25 gerektirir, tanıtım amaçlıdır.

0 örnek
Spring

Spring Nedir ve IoC Felsefesi

Spring'i öğrenmenin en iyi yolu, onun hangi sorunu çözdüğünü anlamaktır. Çünkü Spring bir "sihir" değil; uzun yıllar boyunca kurumsal Java uygulamalarında tekrar tekrar karşılaşılan bir acıya verilmiş, çok zarif bir c…

3 örnek2 çalıştırılabilir
Spring

Dependency Injection (Bağımlılık Enjeksiyonu)

Önceki bölümde IoC felsefesini ve container'ın nesneleri bizim yerimize oluşturup bağladığını gördük. Şimdi bu bağlamanın nasıl yapıldığına yakından bakıyoruz. Dependency Injection (DI), bir nesnenin ihtiyaç duyduğu b…

3 örnek
Spring

Bean Yaşam Döngüsü ve Scope

Container'ın bean'leri oluşturup bağladığını biliyoruz. Peki bu bean'ler tam olarak ne zaman oluşturulur, ne zaman yok edilir ve container içinde kaç tane kopyaları olur? Bu sorular yaşam döngüsü (lifecycle) ve kapsam…

3 örnek
Spring

Yapılandırma Yöntemleri ve Stereotype Anotasyonları

Container'ın bean'leri yönettiğini biliyoruz. Peki container'a "hangi bean'ler var?" diye nasıl söyleriz? Spring bunun için birkaç yol sunar ve modern projelerde genelde ikisini birlikte kullanırız: kendi sınıflarımız…

3 örnek
Spring

Spring AOP (Aspect-Oriented Programming)

Her ciddi uygulamada, asıl iş mantığının yanında tekrar eden "yan görevler" vardır: loglama, güvenlik kontrolü, transaction yönetimi, performans ölçümü, önbellekleme. Bunlara kesişen ilgiler (cross-cutting concerns) d…

3 örnek1 çalıştırılabilir
Spring

SpEL, Olaylar (Events) ve Profiller

Spring çekirdeğinin son durağında, container'ı daha esnek ve güçlü kılan üç yardımcı yeteneği işliyoruz: ifadeleri çalışma anında değerlendiren SpEL, bileşenleri gevşek bağlayan olay mekanizması ve uygulamayı ortama g…

3 örnek
Spring

Veri Erişimi: Spring JDBC ve JdbcTemplate

Neredeyse her kurumsal uygulama bir veritabanıyla konuşur. Java bölümünde ham JDBC'yi öğrendin ve onun ne kadar "kazan kodu" (boilerplate) gerektirdiğini gördün: bağlantı aç, statement hazırla, ResultSet'i gez, kaynak…

3 örnek
Spring

Transaction Yönetimi

Bir veritabanı işlemi çoğu zaman tek bir adım değildir: para transferinde birinden düşülür, diğerine eklenir; sipariş oluşturulurken başlık ve kalemler birlikte yazılır. Bu adımların hepsi başarılı olmalı ya da hiçbir…

4 örnek
Spring

Doğrulama (Validation)

Bir uygulamanın en kırılgan sınırı, dış dünyadan veri aldığı yerdir: kullanıcı formları, API istekleri, dosya içerikleri. "Yaş negatif olmasın", "e-posta geçerli olsun", "ad boş olmasın" gibi kuralları her yerde elle…

3 örnek
Spring Boot

Spring Boot Nedir ve İlk Uygulama

Spring Framework'ün gücünü gördük; ama saf Spring'le bir web uygulaması kurmak hâlâ epey yapılandırma (sunucu kurulumu, bağımlılık uyumu, XML/Java config) gerektirir. Spring Boot, bu kurulum yükünü neredeyse sıfıra in…

3 örnek
Spring Boot

REST API Geliştirme

İlk Boot uygulamamızda bir GET endpoint'i yazdık. Şimdi REST API'lerin tüm mekaniğini ele alıyoruz: kaynakları oluşturmak, okumak, güncellemek ve silmek (CRUD); doğru HTTP metotlarını ve durum kodlarını kullanmak; ist…

3 örnek
Spring Boot

Spring Data JPA

JDBC ve JdbcTemplate ile veritabanına SQL yazarak eriştik. Spring Data JPA, bir adım daha ileri gider: nesneleri tablolara eşler (ORM, Hibernate ile) ve veri erişim kodunun büyük kısmını sen hiç yazmadan üretir. Bir a…

3 örnek
Spring Boot

Validation ve Global Exception Handling

Bir API'nin dış dünyaya bakan iki kritik sorumluluğu vardır: gelen veriyi doğrulamak ve hata olduğunda istemciye anlamlı, tutarlı bir cevap dönmek. Spring Framework bölümünde Bean Validation'ı öğrendik; şimdi onu bir…

3 örnek
Spring Boot

Spring Security

Bir uygulamayı dünyaya açtığın an, "kimsin?" ve "ne yapmaya yetkilisin?" sorularını cevaplamak zorundasın. Spring Security, kimlik doğrulama (authentication) ve yetkilendirme (authorization) için Java dünyasının fiili…

3 örnek
Spring Boot

Caching, Async ve Scheduling

Bir uygulamayı hızlı ve verimli kılmanın üç güçlü aracını ele alıyoruz: tekrarlayan pahalı işlemleri önbelleğe almak (@Cacheable), uzun süren işleri arka plana atmak (@Async) ve belirli aralıklarla otomatik görev çalı…

3 örnek
Spring Boot

Actuator ve Üretim Araçları

Bir uygulamayı yazmak işin yarısıdır; onu üretimde çalışır, izlenebilir ve yönetilebilir tutmak diğer yarısıdır. "Uygulama ayakta mı? Belleği ne durumda? Saniyede kaç sipariş geliyor?" sorularını cevaplamak gerekir. S…

3 örnek
Spring Boot

Test

Çalışan bir kod yazmak yetmez; çalışmaya devam ettiğini garanti etmek gerekir. Testler, kodun doğruluğunu otomatik olarak doğrular; bir değişiklik bir şeyi bozduğunda anında haber verir. Bu güven, projeyi korkusuzca g…

3 örnek
Spring Boot

Dağıtık Transaction ve Saga Pattern

@Transactional ile tek bir veritabanında "ya hepsi ya hiçbiri" garantisini öğrendik. Ama mikroservis mimarisinde bir iş akışı birden çok servise ve veritabanına yayılır: sipariş servisi, stok servisi, ödeme servisi, k…

3 örnek3 çalıştırılabilir
Spring Boot

Spring Boot Runners (Başlangıç Görevleri)

Bir uygulama başladığında, ilk istekten önce bir kez çalışması gereken işler olur: önbellek ısıtma, başlangıç verisi yükleme (seed), bağlantı kontrolü, bir kuyruğu dinlemeye başlama, tek seferlik geçiş (migration). Sp…

1 örnek
Spring Boot

Servis Bileşenleri ve Katmanlı Mimari

Bir Spring Boot uygulaması büyüdükçe, tüm mantığı controller'lara doldurmak sürdürülemez hale gelir. Sağlam uygulamalar katmanlı mimari kullanır: her katmanın tek bir sorumluluğu vardır. Bu konu, Spring'in stereotip a…

1 örnek
Spring Boot

Spring Boot Interceptor (HandlerInterceptor)

Birçok istekte tekrar eden işler vardır: loglama, süre ölçme, kimlik/yetki kontrolü, istek sayacı, dil ayarı. Bunları her controller metoduna tek tek yazmak hem tekrar hem hata kaynağıdır. Interceptor, Spring MVC sevi…

1 örnek
Spring Boot

Spring Boot Servlet Filter

Filter, Java web dünyasının (Servlet API'si) en eski ara katman mekanizmasıdır (topic 65). Bir isteği, daha Spring MVC'ye (DispatcherServlet) ulaşmadan en dışta karşılar ve yanıt çıkarken son olarak görür. Spring Boot…

1 örnek
Spring Boot

Spring Boot CORS Desteği

Modern web uygulamalarında frontend (örn. https://uygulamam.com) ve backend API (örn. https://api.uygulamam.com) genelde farklı kökenlerde (origin) çalışır. Tarayıcılar güvenlik gereği, bir sayfanın kendi kökeni dışın…

1 örnek
Spring Boot

Application Properties ve Yapılandırma

Bir uygulamanın davranışını koda gömmek yerine dışarıdan yapılandırmak, profesyonel geliştirmenin temelidir: veritabanı adresi, port, özellik bayrakları, dış servis anahtarları... Aynı kod farklı ortamlarda (geliştirm…

1 örnek
Spring Boot

Spring Boot Logging (Günlükleme)

System.out.println hata ayıklamak için yeterli görünür ama üretimde işe yaramaz: seviye yok, zaman damgası yok, kapatılamaz, dosyaya yazılamaz, performansı bozar. Profesyonel uygulamalar logging kullanır. Spring Boot,…

1 örnek
Spring Boot

REST Tüketimi (RestClient / RestTemplate / WebClient)

Bir uygulama sık sık başka servislerin API'lerini çağırır: bir ödeme servisi, bir döviz kuru API'si, başka bir mikroservis. Bu konuya "REST tüketimi" (consuming REST) denir. Önceki konuda (topic 01) API sunmayı öğrend…

1 örnek
Spring Boot

Spring Boot Dosya İşleme (Upload / Download)

Birçok uygulama dosya alıp verir: profil fotoğrafı yükleme, CSV/Excel içe aktarma, PDF/rapor indirme, belge yönetimi. Spring Boot, dosya yükleme (multipart) ve indirme işlemlerini basit anotasyonlarla destekler. Bu ko…

1 örnek
Spring Boot

Uluslararasılaştırma (i18n)

Uygulaman birden çok dilde kullanıcıya hitap ediyorsa, metinleri koda gömmek yerine dile göre dışarıdan sağlamalısın. i18n (internationalization — i + 18 harf + n), uygulamayı farklı dil ve bölgelere uyarlayabilir hal…

1 örnek
Spring Boot

Spring Boot OAuth2 ve JWT

Modern API'ler durumsuz (stateless) kimlik doğrulama kullanır: sunucu oturum (session) tutmaz; istemci her istekte kim olduğunu kanıtlayan bir token taşır. Bu token genelde bir JWT (JSON Web Token)'dır ve OAuth2 akışl…

1 örnek
Spring Boot

Spring Boot Annotations (Anotasyonlara Genel Bakış)

Spring Boot, "yapılandırmayı koda gömme" felsefesini anotasyonlarla hayata geçirir. XML yapılandırma dosyaları yerine, sınıflarını ve metotlarını anotasyonlarla işaretlersin; Spring bunları okuyup bean'leri oluşturur,…

1 örnek
Spring Boot

Gömülü Sunucu Yapılandırması (Tomcat Port & Sunucu Ayarları)

Spring Boot'un en büyük kolaylıklarından biri gömülü web sunucusudur: uygulaman bir .jar olarak çalışır ve içinde Tomcat (varsayılan), Jetty veya Undertow bulunur — ayrıca bir sunucu kurup .war dağıtmana gerek yoktur.…

1 örnek
Spring Boot

Eureka — Servis Keşfi (Service Discovery)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Eureka, Spring Cloud bağımlılığı ve birden > çok ayrı servis gerektirir; bu portal (tek JVM, JDK 21) bunu çalıştıramaz. Aşağıdaki kod/yapı > tanıtım amaçlıdır.

0 örnek
Spring Boot

Eureka'ya Servis Kaydı ve Servisler Arası Çağrı

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Spring Cloud + Eureka + birden çok servis > gerektirir; portalda çalışmaz. Kod tanıtım amaçlıdır.

0 örnek
Spring Boot

API Gateway (Spring Cloud Gateway)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Spring Cloud Gateway + birden çok servis > gerektirir; portalda çalışmaz. Kod/yapı tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Cloud Config Server (Merkezi Yapılandırma)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Spring Cloud Config + bir Git deposu + birden çok > servis gerektirir; portalda çalışmaz. Kod/yapı tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Cloud Config Client (Merkezi Ayarı Tüketme)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Spring Cloud Config + çalışan bir Config Server > gerektirir; portalda çalışmaz. Kod/yapı tanıtım amaçlıdır.

0 örnek
Spring Boot

API Dokümantasyonu (SpringDoc OpenAPI / Swagger UI)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. SpringDoc OpenAPI ek bağımlılık gerektirir; > portalda çalışmaz. Kod/yapı tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot Admin (Server / Client)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Spring Boot Admin ek bağımlılık + birden çok > servis gerektirir; portalda çalışmaz. Kod/yapı tanıtım amaçlıdır.

0 örnek
Spring Boot

Dağıtık İzleme (Distributed Tracing)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Micrometer Tracing + Zipkin/Tempo + birden çok > servis gerektirir; portalda çalışmaz. Kod/yapı tanıtım amaçlıdır.

0 örnek
Spring Boot

Docker İmajı Oluşturma

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Docker, bir konteyner ortamı gerektirir; portalda > çalışmaz. Komutlar/dosyalar tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot ile Apache Kafka

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Kafka, çalışan bir Kafka broker'ı + ek bağımlılık > gerektirir; portalda çalışmaz. Kod tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot WebSocket (Gerçek Zamanlı İletişim)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. WebSocket starter + bir tarayıcı/istemci > gerektirir; portalda çalışmaz. Kod tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot Batch (Toplu İşleme)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Spring Batch starter + bir veritabanı (iş > meta-verisi için) gerektirir; portalda çalışmaz. Kod tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot Flyway (Veritabanı Şema Migration'ı)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Flyway bağımlılığı + bir veritabanı gerektirir; > portalda çalışmaz. Kod/yapı tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot ile E-posta Gönderme

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. spring-boot-starter-mail + bir SMTP sunucusu > gerektirir; portalda çalışmaz. Kod tanıtım amaçlıdır. (E-postanın genel/saf Java tarafı için > Java bölümündeki "E-posta Gön…

0 örnek
Spring Boot

Dayanıklılık: Resilience4j (ve Hystrix)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Resilience4j bağımlılığı + (anlamlı olması için) > uzak servisler gerektirir; portalda çalışmaz. Kod tanıtım amaçlıdır.

0 örnek
Spring Boot

Başlangıç: Initializr, CLI, Bootstrapping ve Araçlar

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Anlatılan araçlar (Initializr, CLI, STS) proje > oluşturma/geliştirme ortamıyla ilgilidir; portalda çalıştırılmaz. Tanıtım amaçlıdır. (Bu konu > listendeki "Quick Start us…

0 örnek
Spring Boot

Build Systems, Starter'lar ve Kod Yapısı

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Build araçları/proje yapısıyla ilgili kavramsal > bir konudur. (Listendeki "Build Systems", "Starters" ve "Code Structure" başlıklarını birlikte > ele alır. Build araçları…

0 örnek
Spring Boot

WAR Dağıtımı (Harici Tomcat'e Dağıtım)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Harici bir Tomcat sunucusu gerektirir; portalda > çalışmaz. Kod/yapı tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot Thymeleaf (Sunucu Tarafı Şablonlar)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. spring-boot-starter-thymeleaf bağımlılığı > gerektirir (portal classpath'inde yok); portalda çalışmaz. Kod tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot'ta HTTPS Etkinleştirme

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. HTTPS bir TLS sertifikası/keystore gerektirir; > portalda çalışmaz. Yapılandırma tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot ile Twilio (SMS / İletişim)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Twilio SDK + bir Twilio hesabı (API anahtarı) > gerektirir; portalda çalışmaz. Kod tanıtım amaçlıdır.

0 örnek
Spring Boot

Spring Boot ve Google Cloud Platform (GCP)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. GCP, bir Google Cloud hesabı/kimlik bilgisi + > Spring Cloud GCP bağımlılıkları gerektirir; portalda çalışmaz. Kod/yapı tanıtım amaçlıdır.

0 örnek
Spring Boot

Google OAuth2 ile Giriş (Social Sign-In)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. spring-boot-starter-oauth2-client + Google'da > kayıtlı bir OAuth uygulaması (client id/secret) gerektirir; portalda çalışmaz. Kod/yapı tanıtım > amaçlıdır.

0 örnek
Spring vs Boot

Spring ve Spring Boot: Temel Farklar

Bu eğitimde önce Spring Framework'ün çekirdeğini, sonra Spring Boot'u öğrendik. Şimdi ikisini yan yana koyup farkı net görelim — çünkü "Spring mi Spring Boot mu?" sorusu yeni başlayanların en sık karıştırdığı konudur.…

3 örnek
Spring vs Boot

Ne Zaman Hangisi ve Geçiş

Temel farkları gördükten sonra pratik soru şu: yeni bir projede hangisini seçmeli, var olan düz Spring projesini Boot'a taşımalı mı, taşırsan nasıl? Bu bölüm bu kararları netleştirir.

1 örnek
Sürüm Analizi

Java 8 — Detaylı Sürüm Analizi ve Örnekler

> Bu klasör, Java 8 sürümünün getirdiği tüm önemli özellikleri derinlemesine > anlatan Türkçe bir dokümantasyon ve her özellik için çalışan, derlenebilir > örnek .java dosyaları içerir.

13 örnek13 çalıştırılabilir
Sürüm Analizi

Java 9 (Eylül 2017) — Detaylı Türkçe Analiz

| Bilgi | Değer | |-------|-------| | Sürüm | Java SE 9 (JDK 9) | | Çıkış Tarihi | 21 Eylül 2017 | | LTS mi? | HAYIR (LTS değildir) | | Destek Durumu | SONA ERDİ — Java 9 kısa ömürlü bir "feature release" idi. Genel d…

5 örnek5 çalıştırılabilir
Sürüm Analizi

Java 10 (Mart 2018) — Detayli Surum Analizi

> Bu klasor, Java 10'un getirdigi yenilikleri Turkce, derinlemesine ve calisan kod ornekleriyle anlatir.

2 örnek2 çalıştırılabilir
Sürüm Analizi

Java 11 (Eylül 2018) — LTS Sürüm Detaylı Analizi

> Çıkış Tarihi: Eylül 2018 > Sürüm Tipi: LTS (Long Term Support — Uzun Süreli Destek) ⭐ > Önceki LTS: Java 8 (Mart 2014) > Sonraki LTS: Java 17 (Eylül 2021)

4 örnek4 çalıştırılabilir
Sürüm Analizi

Java 12 (Mart 2019) — Detaylı Sürüm Analizi

> Çıkış Tarihi: 19 Mart 2019 > Sürüm Tipi: Standart (feature) sürüm — LTS DEĞİL > Destek Modeli: Java 12, 6 aylık sürüm döngüsünün bir parçasıdır. Java 13 (Eylül 2019) çıktığında resmî destek bitmiştir. Yani Java 12 k…

3 örnek3 çalıştırılabilir
Sürüm Analizi

Java 13 (Eylül 2019) — Detaylı Sürüm Analizi

> Bu doküman, Java 13 ile gelen yenilikleri Türkçe, derinlemesine ve gerçek > hayat örnekleriyle anlatır. İlgili çalışan kod için bkz. TextBlocksPreview.java.

1 örnek1 çalıştırılabilir
Sürüm Analizi

Java 14 (Mart 2020) — Detaylı Sürüm Analizi

> Bu doküman Java 14 sürümüyle gelen önemli dil ve platform özelliklerini Türkçe olarak, > "nedir / neden geldi / ne işe yarar / nerede kolaylık sağlar / eski vs yeni / gerçek hayat" > başlıklarıyla derinlemesine anla…

4 örnek4 çalıştırılabilir
Sürüm Analizi

Java 15 (Eylül 2020) — Detaylı Sürüm Analizi

> Bu doküman Java 15 sürümünü Türkçe olarak, her özellik için > NEDİR / NEDEN GELDİ / NE İŞE YARAR / NEREDE KOLAYLIK SAĞLAR / > ESKİ vs YENİ / GERÇEK HAYAT ÖRNEĞİ başlıklarıyla derinlemesine açıklar.

3 örnek3 çalıştırılabilir
Sürüm Analizi

Java 16 (Mart 2021) — Detaylı Türkçe Dokümantasyon

| Özellik | Değer | |---|---| | Sürüm | Java SE 16 / JDK 16 | | Çıkış Tarihi | 16 Mart 2021 | | LTS mi? | HAYIR — kısa destekli ("feature release") sürümdür | | Destek Durumu | Java 17 (Eylül 2021) çıkınca destek sona…

3 örnek3 çalıştırılabilir
Sürüm Analizi

Java 17 (Eylül 2021) — LTS — Detaylı Türkçe Dokümantasyon

> Java 17, Java 8 ve Java 11'den sonra kurumsal dünyanın en çok hedeflediği > LTS sürümüdür. Bu klasör, bu repo'nun EN DETAYLI bölümüdür.

4 örnek4 çalıştırılabilir
Sürüm Analizi

Java 18 (Mart 2022)

| Özellik | Değer | |---|---| | Sürüm | Java 18 (JDK 18) | | Çıkış Tarihi | 22 Mart 2022 | | Destek Türü | Feature Release (kısa vadeli, LTS DEĞİL) | | LTS mı? | Hayır. Sonraki LTS Java 21'dir (Eylül 2023). | | Önceki…

1 örnek1 çalıştırılabilir
Sürüm Analizi

Java 19 (Eylül 2022)

| Özellik | Değer | |---|---| | Sürüm | Java 19 (JDK 19) | | Çıkış Tarihi | 20 Eylül 2022 | | Destek Türü | Feature Release (kısa vadeli, LTS DEĞİL) | | LTS mı? | Hayır | | Tarihsel Önemi | Project Loom (Virtual Threa…

2 örnek2 çalıştırılabilir
Sürüm Analizi

Java 20 (Mart 2023)

| Özellik | Değer | |---|---| | Sürüm | Java 20 (JDK 20) | | Çıkış Tarihi | 21 Mart 2023 | | Destek Türü | Feature Release (kısa vadeli, LTS DEĞİL) | | LTS mı? | Hayır. Bir sonraki sürüm olan Java 21 LTS'in hemen önce…

1 örnek1 çalıştırılabilir
Sürüm Analizi

Java 21 (Eylül 2023) — LTS — YENİ KURUMSAL STANDART

| Özellik | Değer | |---|---| | Sürüm | Java 21 (JDK 21) | | Çıkış Tarihi | 19 Eylül 2023 | | Destek Türü | LTS (Long-Term Support) — UZUN VADELİ DESTEK | | LTS mı? | EVET. Java 8, 11, 17'den sonraki en yeni LTS. | |…

7 örnek5 çalıştırılabilir
Sürüm Analizi

Java 22 (Mart 2024) — Detaylı Türkçe Analiz

| Özellik | Değer | |--------------------|--------------------------------------------------------------| | Sürüm | Java SE 22 / JDK 22 | | Çıkış tarihi | 19 Mart 2024 | | Tür | Feature release (non-LTS) — kısa destek…

3 örnek
Sürüm Analizi

Java 23 — Sürüm Analizi ve Özellikler

> Bu doküman Java 23 sürümünü Türkçe olarak detaylı şekilde açıklar. Hedef kitle: > Java geliştiricileri, eğitmenler ve sürümler arası geçişi planlayanlar.

1 örnek
Sürüm Analizi

Java 24 — Detaylı Sürüm Analizi (Türkçe)

> Bu doküman, Java 24 ile gelen önemli özellikleri "NEDİR / NEDEN GELDİ / NE İŞE YARAR / > NEREDE KOLAYLIK SAĞLAR / ESKİ vs YENİ / GERÇEK HAYAT ÖRNEĞİ" başlıkları altında > Türkçe olarak açıklar. Eğitim ve referans am…

1 örnek
Sürüm Analizi

Java 25 (Eylül 2025) — EN GÜNCEL LTS SÜRÜMÜ

> Bu klasör, Java-Versiyon-Analizi serisinin en detaylı bölümüdür. > Çünkü Java 25, şu an piyasadaki en güncel LTS (Long-Term Support) sürümüdür > ve 2026 itibarıyla kurumsal projelerin birincil hedef sürümüdür.

5 örnek1 çalıştırılabilir
YakındaYakında

Multi-DataSource (Çoklu Veri Kaynağı)

Tek bir Spring Boot uygulamasından birden fazla veritabanına (ör. PostgreSQL + Oracle) aynı anda bağlanma.

🚧 Çalışma devam ediyor
YakındaYakında

React

Bileşen tabanlı modern arayüz geliştirme ve Spring Boot REST API’leri ile veri alışverişi.

🚧 Çalışma devam ediyor
YakındaYakında

Apache Kafka

Olay tabanlı mimari için dağıtık mesajlaşma: producer/consumer ve Spring Kafka entegrasyonu.

🚧 Çalışma devam ediyor
YakındaYakında

Redis

Bellek-içi veri deposu ile önbellekleme, oturum yönetimi ve Spring Data Redis kullanımı.

🚧 Çalışma devam ediyor