İÇİNDEKİLER VII İÇİNDEKİLER 1 JAVA 8 NEDİR ? Java Nasıl Çalışır? 1 3 HOTSPOT Teknolojisi Nedir? 5 Çöp Toplayıcı (GarbageCollector) Nedir? 5 Jar Nedir? 6 Java Geliştirme Ortamı 7 Açıklama Satırıları 8 Nesnel Özellik 10 Temel Veri Tipleri 13 Değişken Nedir? 14 Değişken Tanımlama 15 int Tipi 15 Long Tipi 16 char Tipi 16 float Tipi 16 boolean Tipi 17 double Tipi 17 byte Tipi 18 String Tipi 18 Geçerlilik Alanı 19 İlk Java Programımız 21 Java Dokümantasyon 23 Ortak Kullanılan Yorum Ekleri 25 Sınıflara Ait JAVADOC Etiketler 25 Yordamlara Ait JAVADOC Etiketler 26 Dokümantasyon Örneği 27 2 ATAMA İŞLEMLERİ 29 Atamalar 29 JAVA8_ICINDEKILER.indd 7 19.09.2013 17:21 VIII JAVA 8 Sarmalayıcılar 31 Hangisini Kullanmalı? 32 Örnek Program 33 Atama Operatörleri 35 Aritmetik Operatörler 37 Arttırma ve Azaltma 42 İlişkisel Operatörler 45 Mantıksal Operatörler 48 Bit Düzeyinde Operatörler 52 Operatörlerin Çalışma Önceliği 53 Dönüştürme İşlemi 56 Java Kontrol Deyimleri 61 if Deyimi 62 if else Deyimi 64 else if Deyimi 66 switch Deyimi 70 Java Döngü Deyimleri 74 for Döngü Deyimi 75 while Döngüsü 80 do while Deyimi 83 Java Dallandırma Deyimleri 84 break Deyimi 85 continue Deyimi 87 return Deyimi 89 Ödevler 90 3 SINIF (CLASS) 91 Sınıflar 91 Sınıf Oluşturulması 92 Nesne Oluşturulması 94 Sınıf Örneği 96 JAVA8_ICINDEKILER.indd 8 19.09.2013 17:21 İÇİNDEKİLER Java Constructors (Yapılandırıcılar) 98 Constructor Özellikleri 98 Constructor Tanımlama 99 Constructor Örneği Metodlar (Yordamlar) 104 107 Metodların Tanımı ve Özellikleri 107 Metodların Kullanımı 108 Metod Uygulaması Örneği 111 this Anahtar Sözcüğü 114 this Kullanımı 114 this Örneği 119 static ANAHTAR KELİMESİ 121 static Alanlar 122 static Değişkenler 123 static Metodlar 125 static Uygulama Örneği 128 Garbage Collector (Toplayıcı) 129 Çöp Toplayıcı İşleyişi 130 System.gc() Komutu 131 finalıze() Yordamı 131 Örnek Uygulama IX 133 Diziler 134 Dizi Tanımlama 135 Dizilere Değer Atama 138 Dizi Elemanlarına Erişim 140 Dizi Uzunluğu - Boyutu 144 Yeniden Boyutlandırma 146 Dizi Kopyalama 148 Dizi Elemanlarını Sıralama 150 Dizi İçerisinde Arama 152 JAVA8_ICINDEKILER.indd 9 19.09.2013 17:21 X JAVA 8 Çok Boyutlu Diziler 155 Dizi Uygulama Örneği 157 Ödevler 160 4 PAKETLERE ERİŞİM VE İŞLEMLER Java Paket (Package) Kavramı 161 161 Varsayılan Paket 162 Paket Oluşturma 163 import Anahtar Sözcüğü 166 Paket Çakışması 167 Örnek Uygulama 169 JAR Dosyaları 171 JAR Oluşturma 172 JAR Çalıştırma ve Diğer İşlemler 175 Erişim Belirleyiciler 176 public 177 protected 178 friendly 180 private 181 Ödevler 183 5 JAVA’DA DAHİLİ SINIFLARIN KULLANILMASI Dahili Sınıflar (Inner Classes) - Üye 185 185 Dahili Alt - Üye Sınıflar 186 Dahili Üye Sınıfların Çalışma Sırası 190 Üye Sınıflara Erişim 193 static Üye Sınıflar 195 static Üye Sınıflar ve Yordamlar 198 Yerel Sınıflar (Local Classes) 200 Dahili Sınıflar - Kalıtım (Inherıtance) extends Anahtar Kelimesi JAVA8_ICINDEKILER.indd 10 202 203 19.09.2013 17:21 İÇİNDEKİLER super() Anahtar kelimesi 210 İptal (Override) İşlemi 214 Örnek Uygulama 220 final Özelliği XI 223 final Değişkenler 224 final Parametreler 227 final Metodlar 229 final Sınıflar 230 Ödevler 231 6 POLİMORFİZM (ÇOK BİÇİMLİLİK) Polimorfizm (Çok Biçimlilik) Kavramı 233 233 Geç Bağlama (Late Binding) ve Erken Bağlama (Early Binding) 239 final Deyimi ve Geç Bağlama 241 Yukarı Çevirim (Up Casting) 243 Aşağı Çevirim (Down Casting) 246 instanceof Anahtar Kelimesi 250 Soyut Sınıflar ve Yordamlar 254 Örnek Uygulama 258 Ödevler 259 7 ARAYÜZLER (INTERFACES) 261 Arayüzler 261 interface Anahtar Kelimesi 262 implements Anahtar Kelimesi 264 Arayüzler ve Değişkenler 266 Arayüzler ve Çoklu Kalıtım 267 Arayüzler Ortamında Çakışma 273 Arayüzler ve Soyut Sınıflar 275 Dahili Arayüzler 279 Örnek Uygulama 282 Ödevler 283 JAVA8_ICINDEKILER.indd 11 19.09.2013 17:21 XII JAVA 8 8 İSTİSNALAR (EXCEPTION) İstisnalar (Exception) Kavramı 285 285 İstisna Nasıl Oluşur? 286 try-catch Bloğu 289 İstisna İfadeleri 292 İç İçe try-catch Blokları 296 İstisna Mesajları 301 throws Anahtar Kelimesi 304 throw Anahtar Kelimesi 306 Kendi İstisnalarımızı Oluşturmak 310 finally Bloğu 313 finally Bloğu ve return Deyimi 316 System.exit() Komutu 318 Ödevler 319 9 JAVA’DA DOSYA - (I/O) DİZİN İŞLEMLERİ 321 Dosya İşlemleri 321 File Sınıfı 322 Dosya Oluşturma 336 Klasör Oluşturma 338 Klasör Okuma 339 Dosya İsmini Değiştirme 340 Input (Girdi) Sınıfları 341 InputStream Sınıfı 341 FilterInputStream Sınıfı 348 BufferedInputStream Sınıfı 348 CheckedInputStream Sınıfı 351 Checksum, CRC32 ve Adler32 Sınıfları 352 DataInputStream Sınıfı 355 PushbackInputStream Sınıfı 356 Output (Çıktı) Sınıfları JAVA8_ICINDEKILER.indd 12 358 19.09.2013 17:21 İÇİNDEKİLER OutputStream Sınıfı 358 FilterOutputStream Sınıfı 363 BufferedOutputStream Sınıfı 363 CheckedOutputStream Sınıfı 367 DataOutputStream Sınıfı 368 PrintStream Sınıfı 370 Reader (Okuyucu) Sınıfları 372 InputStreamReader Sınıfı 373 FileReader Sınıfı 376 BufferedReader Sınıfı 377 PushBackReader Sınıfı 377 Writer (Yazıcı) Sınıfları 378 OutputStreamWriter Sınıfı 380 FileWrıter Sınıfı 381 PrintWriter Sınıfı 383 BufferedWriter Sınıfı 384 StringWriter Sınıfı 385 Java ile Dosya Sıkıştırma 386 ZipFile Sınıfı 387 ZipInputStream Sınıfı 387 ZipOutputStream Sınıfı 388 ZipEntry Sınıfı 388 Bölümleyiciler (Veri parçalama) Sınıfları StreamTokenizer Sınıfı 393 394 StreamTokenizer(inputStream is); 394 StreamTokenizer(Reader r); 394 StringTokenizer Sınıfı XIII 396 StringTokenizer(String str); 396 StringTokenizer(String str, String delim); 396 StringTokenizer(String str, String delim, boolean returnDelims); 396 Ödevler 397 JAVA8_ICINDEKILER.indd 13 19.09.2013 17:21 XIV JAVA 8 10 GELİŞMİŞ GİRİŞ-ÇIKIŞ (INPUT-OUTPUT) İŞLEMLERİ 399 Gelişmiş Tamponlama 399 ByteBuffer Sınıfı 400 CharBuffer Sınıfı 408 DoubleBuffer Sınıfı 410 FloatBuffer Sınıfı 412 IntBuffer Sınıfı 413 LongBuffer Sınıfı 415 ShortBuffer Sınıfı 417 Nesneler, Tamponlar ve Diziler 419 Tampon Nesneleri Dönüştürme 419 Tamponlar ve Diziler 421 11 JAVA’DA ÇOK KANALLI (MULTITHREAD) İŞLEMLER Thread Sınıfı 425 426 Yapılandırıcılar 428 Metodlar 428 Parçacık Denetimi ve Yönetimi 435 Runnable Interface (Arayüz) 445 Kaynak Kilitleme 449 Piped Sınıfları 454 Parçacık Gruplama 459 Ödevler 462 12 NESNEL DİZİLER VE KOLEKSİYONLAR 463 Nesnel Dizi Sınıfları 463 Arrays Sınıfı 464 ArrayList Sınıfı 471 Yapılandırıcılar 472 Metodlar 472 ArrayList ve Collection JAVA8_ICINDEKILER.indd 14 478 19.09.2013 17:21 İÇİNDEKİLER Iterator Arayüzü (Interface) 478 Lıstıterator Arayüzü (Interface) 482 ArrayList ve Listiterator 483 LinkedList Sınıfı 486 Collections Sınıfı 490 Set Arayüzü (Interface) 493 HashSet Sınıfı 494 TreeSet Sınıfı 495 Map Arayüzü (Interface) 497 HashMap Sınıfı 498 TreeMap Sınıfı 501 13 ARAYÜZ (GUI) & KONTROLLER (CONTROLS) 503 Arayüz (GUI) Programlama 503 Kontroller (Controls) 513 JButton Kontrolü 518 JTextField Kontrolü 523 JLabel Kontrolü 526 JCheckBox Kontrolü 527 JRadioButon Kontrolü 528 JComboBox Kontrolü 530 JTextArea Kontrolü 531 JList Kontrolü 534 JTree Kontrolü 537 JSlider Kontrolü 541 Java’da Olay Yönetimi (Event Handling) 14 JAVA & VERİTABANI Java ile Veritabanı Programlama 545 551 551 Veritabanı Nedir? 551 SQL ve Veritabanı Programlama 553 JAVA8_ICINDEKILER.indd 15 XV 19.09.2013 17:21 XVI JAVA 8 İlişkisel Veritabanı Yönetim Sistemi 554 Veritabanı Bağlantısı 554 Veri İşlemleri (Listeleme, Ekleme, Güncelleme, Silme) 563 Özet 573 15 JAVA SE 7 Java7’de Neler Yeni? 575 575 Rakam Gruplama 580 Yeni switch Yapısı 582 Yeni try catch Bloğu 585 Yeni Generic Yapısı 589 Sonuç 591 16 JAVA 8 & LAMBDA 593 Java Lambda Projesi 593 Java8’e Geçiş 594 Lambda İfadeleri 596 Esnek Arayüzler (Interfaces) 608 FileFilter (Interface) 614 Predicate<T>(Interface) 615 BinaryOperator<T>(Interface) 616 Callable<T>(Interface) 617 Supplier<T>(Interface) 617 Block<T>(Interface) 618 Yeni Nesil try-catch 620 Listeleme ve Filtreleme 623 Örnek Uygulama 632 JAVA8_ICINDEKILER.indd 16 19.09.2013 17:21