<CodeTeach/>
TAŞINABİLİR VE GÜÇLÜ

Java Kılavuzu

JVM (Java Sanal Makinesi) üzerinde çalışan nesne yönelimli, güvenli ve platform bağımsız programlama dili.

🌐 Java Nedir?

Java; Sun Microsystems tarafından geliştirilen ve "Bir kere yaz, her yerde çalıştır" prensibine dayanan nesne tabanlı bir dildir. Büyük ölçekli kurumsal yazılımlarda, Android uygulama geliştirmede ve Minecraft gibi dünya çapında popüler oyunların backend ve mod mekaniklerinde ana rolü oynar.

public class Main {
    public static void main(String[] args) {
        System.out.println("Merhaba Dunya!");
    }
}

📥 Girdi ve Çıktı Akışları

Konsola bilgi basmak ve `Scanner` sınıfı yardımıyla klavyeden kullanıcı verilerini dinamik olarak toplamak için kullanılan metotlar.

// System.out.println(): Veriyi ekrana basar ve satır atlar.
System.out.println("CodeTeach Java Akademisi");

// Scanner sınıfı ile veri girişi alma
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("Bir metin girin: ");
string gelenVeri = input.nextLine();

📊 İlkel ve Nesnesel Veri Tipleri

Java veri tipleri ilkel (primitive) ve referans tipleri (reference types) olmak üzere ikiye ayrılır.

int tamSayi = 55;               // İlkel tam sayı
double ondalik = 12.8;          // İlkel ondalıklı sayı
boolean aktifMi = true;         // Mantıksal veri
char sembol = '$';              // Tek karakter

String baslik = "CodeTeach";    // Referans tip (Metin nesnesi)

🎛️ Tip Dönüşümleri (Type Casting)

Sayısal veya metinsel verileri güvenli şekilde eşitlemek ve sarmalayıcı (Wrapper) sınıflarla dönüştürme yapmak.

// Metinden Tam Sayıya Dönüşüm (Wrapper kullanımı)
int veri = Integer.parseInt("2026");

// Otomatik ve Bilinçli Tip Dönüşümü
double yeniOndalik = 10; // Otomatik (int -> double)
int kesilenSayi = (int) 5.99; // Bilinçli dönüşüm (Değer 5 olur)

📋 Dinamik Listeler (ArrayList)

Java Collections Framework parçası olan ve boyutu dinamik olarak değişebilen nesne dizileri.

import java.util.ArrayList;

ArrayList<String> envanter = new ArrayList<>();
envanter.add("Elmas Kilic");  // Eleman ekleme
envanter.add("Kazma");

// İndekse göre eleman çekme
String esya = envanter.get(0); // "Elmas Kilic"
System.out.println(envanter.size()); // Eleman sayısı: 2

⚡ Akış Kontrolleri ve Döngü Yapıları

Mantıksal şart blokları ve koleksiyon elemanlarını kolayca dönmek için geliştirilmiş gelişmiş döngüler.

// Koşul Kontrol Mekanizması
int can = 100;
if (can <= 0) {
    System.out.println("Oyun Bitti.");
} else {
    System.out.println("Hayattasin.");
}

// Klasik For Döngüsü
for (int i = 0; i < 3; i++) {
    System.out.println("Dongu: " + i);
}

// Gelişmiş For-Each Döngüsü (Koleksiyonlar için)
String[] bloklar = {"Tas", "Toprak", "Tahta"};
for (String blok : bloklar) {
    System.out.println(blok);
}