Java Hile Sayfası
Son güncelleme
Hello World ve program yapısı
Her Java programı bir sınıfın içindeki main metodundan çalışır.
| Element | Kod |
|---|---|
| Sınıf bildirimi | public class Main { ... } |
| Giriş noktası | public static void main(String[] args) { ... } |
| Bir satır yazdır | System.out.println("Hello, World!"); |
| Satır sonu olmadan yazdır | System.out.print("text"); |
| Girdi oku | Scanner sc = new Scanner(System.in); |
| Bir sınıfı içe aktar | import java.util.ArrayList; |
| Yorumlar | // line ve /* block */ |
Veri tipleri
İlkel tipler küçük harfle; sarmalayıcı (wrapper) sınıfları büyük harfle yazılır.
| Tip | Açıklama |
|---|---|
int | 32 bit işaretli tam sayı |
long | 64 bit işaretli tam sayı |
double / float | Kayan noktalı sayılar |
boolean | true veya false |
char | Tek bir 16 bit Unicode karakteri |
byte / short | 8 bit / 16 bit tam sayılar |
String | Değiştirilemez metin (bir sınıf, ilkel tip değil) |
Integer, Double, Boolean | İlkel tipler için sarmalayıcı sınıflar |
var | Çıkarımlı yerel tip (Java 10+) |
Değişkenler
| İşlem | Söz dizimi |
|---|---|
| Tanımla ve ilk değer ata | int x = 5; |
| Tip çıkarımı (yerel) | var name = "Ada"; |
| Sabit | final double PI = 3.14159; |
| Dize birleştirme | String s = "Hi " + name; |
| Dizeyi int'e dönüştür | int n = Integer.parseInt("42"); |
| int'i dizeye dönüştür | String s = String.valueOf(42); |
| Biçimlendirilmiş dize | String.format("%d items", n) |
Kontrol akışı
| İfade | Söz dizimi |
|---|---|
| If / else | if (x > 0) { ... } else { ... } |
| Switch ifadesi (statement) | switch (n) { case 1: ...; break; default: ...; } |
| Switch ifadesi (expression) | var s = switch (n) { case 1 -> "one"; default -> "other"; }; |
| While döngüsü | while (i < n) { ... } |
| Do-while döngüsü | do { ... } while (i < n); |
| For döngüsü | for (int i = 0; i < n; i++) { ... } |
| Gelişmiş for (for-each) | for (String item : list) { ... } |
| Break / continue | break; bir döngüden çıkar, continue; bir sonraki yinelemeye atlar |
Metotlar
| İşlem | Söz dizimi |
|---|---|
| Bir metot tanımla | int add(int a, int b) { return a + b; } |
| Geri dönüş değeri yok | void greet() { ... } |
| Statik metot | static int square(int x) { return x * x; } |
| Public metot | public String getName() { return name; } |
| Varargs | int sum(int... nums) { ... } |
| Bir metot çağır | int r = add(2, 3); |
| Statik bir metot çağır | Math.max(a, b); |
| Metot aşırı yükleme | int max(int a, int b) ve double max(double a, double b) |
Sınıflar ve OOP
| İşlem | Söz dizimi |
|---|---|
| Bir sınıf tanımla | public class Dog { ... } |
| Alan | private String name; |
| Yapıcı (constructor) | public Dog(String name) { this.name = name; } |
| Bir nesne oluştur | Dog d = new Dog("Rex"); |
| Getter / setter | public String getName() { return name; } |
| Kalıtım | class Puppy extends Dog { ... } |
| Arayüz | interface Runnable { void run(); } |
| Bir arayüzü uygula | class Task implements Runnable { ... } |
| Bir metodu geçersiz kıl | @Override public void speak() { ... } |
Koleksiyonlar
java.util paketinden generic koleksiyonlar.
| Tip | Kullanım ve örnek |
|---|---|
ArrayList<T> | Dinamik dizi: list.add(1); list.get(0); list.size(); |
HashMap<K, V> | Anahtar-değer: map.put("a", 1); map.get("a"); |
HashSet<T> | Benzersiz değerler: set.add(5); set.contains(5); |
LinkedList<T> | Çift yönlü bağlı liste, kuyruk/deque olarak uygun |
ArrayDeque<T> | Yığın/kuyruk: dq.push(x); dq.pop(); |
| Dizi | int[] nums = {1, 2, 3}; |
| Bir listeyi dolaş | for (T x : list) { ... } |
| Bir map'i dolaş | for (var e : map.entrySet()) { e.getKey(); e.getValue(); } |
Stream'ler ve lambda'lar
Koleksiyonlar üzerinde fonksiyonel tarzda işlem hatları (Java 8+).
| İşlem | Söz dizimi |
|---|---|
| Lambda ifadesi | x -> x * 2 |
| Bir stream oluştur | list.stream() |
| Filtrele | .filter(n -> n > 0) |
| Dönüştür (map) | .map(n -> n * 2) |
| Sırala | .sorted() veya .sorted(Comparator.reverseOrder()) |
| İndirge / topla | .reduce(0, Integer::sum) |
| Say / eşleştir | .count(), .anyMatch(n -> n > 5) |
| Listeye topla | .collect(Collectors.toList()) |
| Her biri için | .forEach(System.out::println) |
Yaygın desenler (try/catch, generic'ler)
| Desen | Söz dizimi |
|---|---|
| Try / catch | try { ... } catch (Exception e) { ... } |
| Belirli bir istisnayı yakala | catch (IOException e) { ... } |
| Finally | finally { ... } her zaman çalışır |
| Try-with-resources | try (Scanner sc = new Scanner(...)) { ... } |
| Bir istisna fırlat | throw new IllegalArgumentException("bad"); |
| Generic sınıf | class Box<T> { T value; } |
| Generic metot | <T> T first(List<T> list) { ... } |
| Sınırlandırılmış tip | <T extends Number> |
En çok başvurduğunuz Java söz dizimi, koleksiyonlar ve stream işlemleri tek sayfada. Bu Java hile sayfası, Java yazmak için hızlı bir başvurudur - veri tipleri, kontrol akışı, sınıflar, ArrayList/HashMap koleksiyonları, Streams API'si ve her gün kullandığınız istisna ve generic desenleri.
Buradaki her şey standart Java'dır (Java 8 ve sonrası) ve javac ile derlenir. İhtiyacınız olanı kopyalayın ya da herhangi bir kod parçasını Java playground'da canlı deneyin - kurmanız gereken bir JDK yok.
Java hile sayfası SSS
Bu Java hile sayfası ücretsiz mi?
Java'da == ile .equals() arasındaki fark nedir?
== referansları karşılaştırır - iki değişkenin tam olarak aynı nesneyi gösterip göstermediğini - oysa .equals() içerikleri karşılaştırır. Aynı metne sahip iki farklı String nesnesi .equals()'tir ama == olmayabilir. Dizeleri ve diğer nesneleri değer eşitliği için karşılaştırırken her zaman .equals() kullanın; =='i yalnızca ilkel tipler (int, boolean vb.) için veya null kontrolü için kullanın.Java'da stream'ler ne için kullanılır?
filter, map, sorted, reduce, collect. list.stream() ile başlar, ara işlemleri zincirler ve collect(Collectors.toList()) veya forEach gibi bir uçtaki (terminal) işlemle bitirirsiniz. Veri dönüştürme kodunu özlü ve anlaşılır tutar.