Java Dokümantasyonu
Kısa ve örneklerle anlatılan Java kaynağı. Kavramı oku, kodu gör, sonra Coddy yolculuğunda uygula.
Rehberli bir Java yolculuğuna başlaBaşlarken
- Java NedirJava'nın gerçekte ne olduğu, JVM'nin derlenmiş tek bir programı her yerde nasıl çalıştırabildiği ve Java ile ne tür yazılımların geliştirildiği.
- Java KurulumuJava Development Kit'i (JDK) nasıl kurarsınız, sürüm ve sağlayıcı nasıl seçilir ve java ile javac'ın komut satırından çalıştığı nasıl doğrulanır.
- Java'yı ÇalıştırmaHer Java programının arkasındaki iki adımlı derle-sonra-çalıştır döngüsü: .java kaynağını javac ile bytecode'a dönüştürün, ardından .class dosyasını java ile çalıştırın.
- Java Söz DizimiBir Java programının biçimi: `main` metodu, ifadeler ve noktalı virgüller, bloklar ve süslü parantezler ve kodunuz daha çalışmadan önce derleyicinin dayattığı kurallar.
- YorumlarJava'da nasıl yorum yazılır: tek satırlık // yorumları, çok satırlık /* */ blokları ve Javadoc /** */ belge yorumları; ayrıca her birinin ne zaman kullanılacağı ve nelerden kaçınılacağı.
Değişkenler ve türler
- DeğişkenlerJava'da değişkenler nasıl çalışır: bir tür ile tanımlama, değer atama, adlandırma kuralları, var anahtar kelimesi, final ile sabitler ve bir değişkenin nerede yaşadığını belirleyen kapsam kuralları.
- Veri TipleriJava'nın veri tipleri açıklanıyor: sekiz ilkel tip, referans tipleri, varsayılan değerler, literaller ve sonekler, taşma (overflow) ve hangi sayısal tipi ne zaman kullanmalı.
- String'lerJava string'lerinin nasıl çalıştığı: oluşturma, + ile birleştirme, neden değişmez (immutable) oldukları, equals ile karşılaştırma ve length, substring, replace gibi günlük String metotları.
- String BiçimlendirmeJava'da String.format ve printf ile string nasıl biçimlendirilir - sayılar, dolgu ve ondalıklar için biçim belirteçleri ile text block'lar ve formatted yöntemi.
- OperatörlerJava operatörlerinin nasıl çalıştığı - aritmetik, karşılaştırma, mantıksal, atama, artırma ve üçlü (ternary) operatör - ayrıca tam sayı bölmesi, öncelik ve yeni başlayanları yakalayan tuzaklar.
- Tür DönüşümüJava türler arasında nasıl dönüşüm yapar: otomatik genişletme, açık daraltma dönüşümleri, daraltırken hangi verileri kaybedersiniz ve sayılarla metinler arasında dönüşüm.
Kontrol akışı
- if-elseJava'da if, else if ve else ile nasıl karar verilir: boolean koşullar, dalları zincirleme, iç içe yapı, üçlü (ternary) operatör ve insanları yanıltan yaygın hatalar.
- switchJava switch deyimi açıklandı: case etiketleri, break ve fall-through, default dalı, case'leri gruplama, modern ok biçimi ve switch ifadeleri.
- for DöngüsüJava for döngüsü anlatımı: klasik üç parçalı döngü, diziler ve listeler üzerinde dönme, iç içe döngüler, break ve continue ve geliştirilmiş for-each.
- while DöngüleriJava while döngüsü anlatılıyor: koşulu önce kontrol eden while, en az bir kez çalışan do-while, bir nöbetçi değere kadar girdi okuma, break ile continue ve sonsuz döngülerden kaçınma.
- for-each DöngüsüJava for-each (gelişmiş for) döngüsü anlatılıyor: diziler ve koleksiyonlar üzerinde temiz yineleme, ne zaman kullanılacağı ve herkesi yanıltan değiştirme tuzağı.
Diziler ve koleksiyonlar
- DizilerJava'da diziler nasıl çalışır - sabit uzunluk, tanımlama ve ilk değer atama, indeksleme, length, döngüler, çok boyutlu diziler ve Arrays yardımcı sınıfı.
- ArrayListJava'nın ArrayList'i nasıl kullanılır - düz bir dizi yerine tercih ettiğiniz, boyutu değişebilen liste - ekleme, alma, silme, boyut, döngü ve sıralamayı kapsar.
- HashMapJava'nın HashMap'ini anahtar-değer aramaları için nasıl kullanırsınız: put, get, getOrDefault, containsKey, girdiler üzerinde döngü ve en sık başvuracağınız kalıplar.
- HashSetJava'nın HashSet'ini benzersiz değer koleksiyonları için nasıl kullanırsınız: ekleme, contains, kaldırma, bir listeden yinelenenleri temizleme ve kümeleri birleşim, kesişim ve fark ile birleştirme.
- Koleksiyonlarda GezinmeJava koleksiyonları üzerinde dönmenin yolları - for-each döngüsü, Iterator, indeksli döngüler ve forEach metodu - ve gezinirken eleman çıkarmanın güvenli yolu.
Metotlar
- MetotlarJava'da metot nedir, nasıl tanımlanır ve çağrılır, dönüş değerleri ile void arasındaki fark, statik main metodu ve metotların kodu nasıl düzenli ve yeniden kullanılabilir tuttuğu.
- Metot ParametreleriJava metot parametrelerinin nasıl çalıştığı - argüman geçirme, parametre ile argüman arasındaki fark, Java'nın değere göre geçiş kuralı ve değer döndürme.
- Metot Aşırı YüklemeJava metot aşırı yükleme sayesinde birden fazla metodun nasıl aynı ismi paylaşıp farklı parametreler alabildiği, derleyicinin hangi aşırı yüklemeyi seçtiği ve kaçınılması gereken belirsizlik tuzakları.
- VarargsJava'nın varargs (...) yapısı bir metodun istediğiniz sayıda argüman almasını nasıl sağlar, bunlar nasıl diziye dönüşür, tek-vararg-sonda kuralı ve boş çağrı ile belirsizlik tuzakları.
Sınıflar ve nesneler
- SınıflarJava sınıfının ne olduğu, alanların ve metotların nasıl tanımlanacağı, new ile nesne oluşturma, this'in rolü ve örnek durumunun neden nesnede tutulduğu.
- YapıcılarJava yapıcı metotlarının çalışma şekli: varsayılan yapıcı, parametreli yapıcılar, this, yapıcı aşırı yükleme ve this() ile super() kullanarak zincirleme.
- KalıtımBir Java alt sınıfının extends ile alanları ve metotları nasıl miras aldığı, super ile üst sınıfı nasıl çağırdığı ve davranışı nasıl override ettiği - ve sık yapılan hatalar.
- ArabirimlerJava arabiriminin ne olduğu, nasıl tanımlanıp uygulanacağı, default ve static metotlar ve arabirimlerin soyut sınıflardan nasıl farklı olduğu.
- Soyut SınıflarJava soyut sınıfının ne olduğu, soyut metotların nasıl tanımlandığı, neden örneklenemediği ve ne zaman arayüz yerine soyut sınıf seçmeniz gerektiği.
- PolimorfizmJava polimorfizminin tek bir değişkenin birçok türe referans vermesini nasıl sağladığı, ezilen (override edilen) metotların neden çalışma zamanında çağrıldığı ve upcasting, downcasting ile instanceof'un nasıl güvenle kullanılacağı.
- Erişim BelirleyicileriJava'nın dört erişim seviyesi - public, private, protected ve package-private - diğer kodun neyi görebileceğini ve neye dokunabileceğini nasıl denetler.
- Statik ÜyelerJava'da static anahtar sözcüğünün ne yaptığı, static alan ve metotların nesnelere değil sınıfa nasıl ait olduğu ve static bloklara ve sabitlere ne zaman başvurulacağı.
- Enum'larJava enum'ının ne olduğu, nasıl tanımlanacağı, alan ve metot eklemek, üzerinde switch kullanmak ve bir enum'ın neden bir yığın int veya String sabitinden daha iyi olduğu.
Generikler ve fonksiyonel
- GenericsJava generics nedir, generic sınıf ve metotlar nasıl yazılır, sınırlandırılmış tip parametreleri, joker karakterler ve tip silmenin neden önemli olduğu.
- Lambda İfadeleriJava lambda ifadesinin ne olduğu, ok söz dizimi, fonksiyonel bir arayüzü nasıl uyguladığı, metot referansları ve değişken yakalama.
- Stream'lerJava'nın Stream API'si ile koleksiyonlar nasıl işlenir - filter, map, sorted, collect, count ve reduce - manuel döngüler yerine okunabilir pipeline'lar kurarak.
- Optionaljava.util.Optional nedir, nasıl oluşturulur ve değeri null kontrolleri yerine map, filter, orElse ve ifPresent ile nasıl güvenli okunur.
Hatalar ve hata ayıklama
- İstisnalarJava istisnasının ne olduğu, yığın izinin nasıl okunacağı, denetlenen ile denetlenmeyen ayrımı, istisna hiyerarşisi ve kendi istisnanızı nasıl fırlatacağınız.
- try-catchJava'da istisnaları yönetmek için try-catch nasıl kullanılır: belirli türleri yakalama, finally bloğu, try-with-resources ve hataları gizleyen yanlışlar.
- NullPointerExceptionJava'da bir NullPointerException'ın gerçekte ne anlama geldiği, onu tetiklemenin yaygın yolları, mesajın nasıl okunacağı ve onu önleyen kalıplar.